Untitled
unknown
plain_text
10 days ago
2.5 kB
4
Indexable
#!/usr/bin/env python3 import os import shutil from colorama import init, Fore, Style # Inicjalizacja colorama init(autoreset=True) def log_info(message): print(f"{Fore.BLUE}[INFO] {message}{Style.RESET_ALL}") def log_success(message): print(f"{Fore.GREEN}[SUCCESS] {message}{Style.RESET_ALL}") def log_warning(message): print(f"{Fore.YELLOW}[WARNING] {message}{Style.RESET_ALL}") def log_error(message): print(f"{Fore.RED}[ERROR] {message}{Style.RESET_ALL}") def replicate_directory(source_path, dest_path): """ Kopiuje cały folder source_path do dest_path. Jeśli folder docelowy już istnieje, operacja jest pomijana. """ try: if os.path.exists(dest_path): log_warning(f"Folder '{dest_path}' już istnieje. Pomijam kopiowanie.") else: shutil.copytree(source_path, dest_path) log_success(f"Skopiowano '{source_path}' do '{dest_path}'.") except Exception as e: log_error(f"Błąd podczas kopiowania '{source_path}' do '{dest_path}': {e}") def replicate_in_range(base_folder, folder_name, start=1, end=11): """ W katalogu base_folder wyszukuje folder o nazwie folder_name0 i kopiuje go, tworząc foldery folder_name1 ... folder_name(end) """ source_folder = os.path.join(base_folder, f"{folder_name}0") if not os.path.exists(source_folder): log_error(f"Źródłowy folder '{source_folder}' nie istnieje.") return for i in range(start, end + 1): destination_folder = os.path.join(base_folder, f"{folder_name}{i}") replicate_directory(source_folder, destination_folder) def main(): # Określ katalog, w którym znajduje się skrypt script_dir = os.path.dirname(os.path.abspath(__file__)) if '__file__' in globals() else os.getcwd() log_info(f"Katalog skryptu: '{script_dir}'") # Powielanie folderów w katalogu głównym log_info("Powielanie folderów w katalogu głównym:") for folder in ["gluetun", "instance"]: replicate_in_range(script_dir, folder) # Powielanie folderów wewnątrz TERM2 (jeśli folder TERM2 istnieje) term2_dir = os.path.join(script_dir, "TERM2") if not os.path.exists(term2_dir): log_warning(f"Folder 'TERM2' nie istnieje w '{script_dir}'. Pomijam operacje w TERM2.") else: log_info("Powielanie folderów w katalogu 'TERM2':") for folder in ["gluetun", "instance"]: replicate_in_range(term2_dir, folder) if __name__ == '__main__': main()
Editor is loading...
Leave a Comment