MASTER UPDATE: 20 Biomes Confirmed, Project Reorganized, 10-Phase Structure Added
This commit is contained in:
104
scripts/utils/organize_cleanup.py
Normal file
104
scripts/utils/organize_cleanup.py
Normal file
@@ -0,0 +1,104 @@
|
||||
import os
|
||||
import shutil
|
||||
import glob
|
||||
|
||||
REPO_ROOT = "/Users/davidkotnik/repos/novafarma"
|
||||
DESKTOP_SOURCE = "/Users/davidkotnik/Desktop/referencne slike 2"
|
||||
|
||||
# 1. DELETE LIST (Old backups, trash, clutter directories)
|
||||
DIRS_TO_DELETE = [
|
||||
"_BACKUP_OLD_IMAGES_20260125_121156",
|
||||
"_TRASH_BIN",
|
||||
"DEBUG_TOTAL_RECOVERY",
|
||||
"EMERGENCY_SYSTEMS_RECOVERY",
|
||||
"INTRO_STORY_IMAGES",
|
||||
"MASTER_DESIGN_RECOVERY",
|
||||
"MASTER_RECOVERY",
|
||||
"NOVE_SLIKE",
|
||||
"gcloud auth application-default login", # Looks like a mistake folder
|
||||
"logs",
|
||||
"old_logic" # Assumption: User wants chaos gone.
|
||||
]
|
||||
|
||||
FILES_TO_DELETE = [
|
||||
"rename_execution_log.txt",
|
||||
"rename_map.json",
|
||||
"rename_statistics.json",
|
||||
"image_inventory.json",
|
||||
".DS_Store"
|
||||
]
|
||||
|
||||
# 2. ORGANIZE (Target Folder -> List of extensions or specific files)
|
||||
ORGANIZATION_MAP = {
|
||||
"web": [".html"],
|
||||
"docs": [".md"], # Excluding README.md and DEV_LOG.md (handled manually)
|
||||
"scripts/utils": [".py"],
|
||||
"config": [".json", ".code-workspace", ".gitignore"]
|
||||
}
|
||||
|
||||
# PROTECTED FILES (Do not move these even if they match extensions)
|
||||
PROTECTED = [
|
||||
"README.md",
|
||||
"DEV_LOG.md",
|
||||
"package.json",
|
||||
"package-lock.json",
|
||||
"organize_cleanup.py" # Self
|
||||
]
|
||||
|
||||
def cleanup_and_organize():
|
||||
print("--- STARTING CLEANUP ---")
|
||||
|
||||
# 1. DELETE
|
||||
for dir_name in DIRS_TO_DELETE:
|
||||
path = os.path.join(REPO_ROOT, dir_name)
|
||||
if os.path.exists(path):
|
||||
print(f"Deleting directory: {dir_name}")
|
||||
shutil.rmtree(path)
|
||||
|
||||
for file_name in FILES_TO_DELETE:
|
||||
path = os.path.join(REPO_ROOT, file_name)
|
||||
if os.path.exists(path):
|
||||
print(f"Deleting file: {file_name}")
|
||||
os.remove(path)
|
||||
|
||||
# 2. ORGANIZE Root Files
|
||||
print("\n--- ORGANIZING ROOT ---")
|
||||
files_in_root = [f for f in os.listdir(REPO_ROOT) if os.path.isfile(os.path.join(REPO_ROOT, f))]
|
||||
|
||||
for file_cat, extensions in ORGANIZATION_MAP.items():
|
||||
target_dir = os.path.join(REPO_ROOT, file_cat)
|
||||
if not os.path.exists(target_dir):
|
||||
os.makedirs(target_dir)
|
||||
|
||||
for file in files_in_root:
|
||||
if file in PROTECTED:
|
||||
continue
|
||||
|
||||
_, ext = os.path.splitext(file)
|
||||
if ext in extensions or file in extensions: # Handle specific filenames in list
|
||||
src = os.path.join(REPO_ROOT, file)
|
||||
dst = os.path.join(target_dir, file)
|
||||
print(f"Moving {file} -> {file_cat}/")
|
||||
shutil.move(src, dst)
|
||||
|
||||
# 3. REFRESH ASSETS
|
||||
print("\n--- REFRESHING ASSETS ---")
|
||||
assets_dir = os.path.join(REPO_ROOT, "assets")
|
||||
|
||||
# Ensure assets exists
|
||||
if not os.path.exists(assets_dir):
|
||||
os.makedirs(assets_dir)
|
||||
|
||||
print("Replacing assets with fresh copies from Desktop...")
|
||||
# Copy from desktop
|
||||
for file in os.listdir(DESKTOP_SOURCE):
|
||||
if file.lower().endswith(('.jpg', '.png', '.jpeg')):
|
||||
src = os.path.join(DESKTOP_SOURCE, file)
|
||||
dst = os.path.join(assets_dir, file)
|
||||
shutil.copy2(src, dst)
|
||||
|
||||
print("Assets updated.")
|
||||
print("\nSUCCESS: Repository cleaned and organized.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
cleanup_and_organize()
|
||||
Reference in New Issue
Block a user