Files
firefly_reports/setup_backend_dirs.py
2026-05-27 13:58:05 +10:00

123 lines
2.9 KiB
Python

#!/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)