#!/usr/bin/env python3 """ Create and verify the backend directory structure for Firefly Reports. This script creates the following structure: backend/ └── app/ ├── routers/ ├── clients/ └── services/ """ import os import sys from pathlib import Path def create_directories(): """Create all required directories.""" base_path = Path(r'C:\Users\Nabeel\Nextcloud\Projects\firefly_reports\backend') directories = [ base_path, base_path / 'app', base_path / 'app' / 'routers', base_path / 'app' / 'clients', base_path / 'app' / 'services', ] print("=" * 80) print("CREATING BACKEND DIRECTORY STRUCTURE") print("=" * 80) print() created_count = 0 for directory in directories: try: directory.mkdir(parents=True, exist_ok=True) print(f"✓ Created: {directory}") created_count += 1 except Exception as e: print(f"✗ Failed to create {directory}: {e}") return False print() print(f"Created {created_count} directories successfully") return True def verify_directories(): """Verify that all directories exist.""" base_path = Path(r'C:\Users\Nabeel\Nextcloud\Projects\firefly_reports\backend') directories = [ base_path, base_path / 'app', base_path / 'app' / 'routers', base_path / 'app' / 'clients', base_path / 'app' / 'services', ] print() print("=" * 80) print("VERIFYING DIRECTORY STRUCTURE") print("=" * 80) print() all_exist = True for directory in directories: if directory.is_dir(): print(f"✓ OK : {directory}") else: print(f"✗ FAIL: {directory} (NOT FOUND)") all_exist = False print() if all_exist: print("=" * 80) print("✓ SUCCESS: All directories verified successfully!") print("=" * 80) else: print("=" * 80) print("✗ FAILURE: Some directories are missing") print("=" * 80) return all_exist def display_structure(): """Display the final directory structure.""" print() print("Final Directory Structure:") print("─" * 80) print("backend/") print("└── app/") print(" ├── routers/") print(" ├── clients/") print(" └── services/") print("─" * 80) def main(): """Main entry point.""" print() # Create directories if not create_directories(): return 1 # Verify directories if not verify_directories(): return 1 # Display structure display_structure() return 0 if __name__ == '__main__': exit_code = main() sys.exit(exit_code)