Untitled

 avatar
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