Untitled
unknown
plain_text
9 months ago
2.5 kB
8
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