#!/usr/bin/env python3 """ Script to add .gitkeep files to all subdirectories in the data folder. This ensures that empty directories are tracked by git even when the data folder is in .gitignore. """ import os from pathlib import Path def add_gitkeep_to_directories(root_path: str | Path): """ Recursively add .gitkeep files to all subdirectories. Args: root_path: Path to the root directory to process """ root = Path(root_path) if not root.exists(): print(f"Error: {root_path} does not exist") return if not root.is_dir(): print(f"Error: {root_path} is not a directory") return gitkeep_count = 0 # Walk through all subdirectories for dirpath, dirnames, filenames in os.walk(root): dir_path = Path(dirpath) # Skip if .gitkeep already exists gitkeep_file = dir_path / ".gitkeep" if gitkeep_file.exists(): print(f" Skipping {dir_path} (already has .gitkeep)") continue # Add .gitkeep file gitkeep_file.touch() print(f" Added .gitkeep to {dir_path}") gitkeep_count += 1 print(f"\nTotal .gitkeep files added: {gitkeep_count}") if __name__ == "__main__": data_path = Path("data") print(f"Adding .gitkeep files to subdirectories in {data_path.absolute()}") print("=" * 60) add_gitkeep_to_directories(data_path) print("\nDone!")