File size: 3,107 Bytes
50a7bf0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
#!/usr/bin/env python3
"""
Development setup script.
Creates necessary directories and validates configuration.
"""
import os
import sys
from pathlib import Path
def create_directories():
"""Create necessary directories for the application."""
directories = [
"uploads",
"videos",
"logs",
"data",
]
for directory in directories:
Path(directory).mkdir(exist_ok=True)
print(f"β Created directory: {directory}")
def check_env_file():
"""Check if .env file exists and create from example if not."""
env_file = Path(".env")
env_example = Path(".env.example")
if not env_file.exists():
if env_example.exists():
# Copy example to .env
env_file.write_text(env_example.read_text())
print("β Created .env file from .env.example")
print("β οΈ Please update the .env file with your actual configuration values")
else:
print("β .env.example file not found")
return False
else:
print("β .env file already exists")
return True
def validate_required_env_vars():
"""Validate that required environment variables are set."""
from dotenv import load_dotenv
load_dotenv()
required_vars = [
"CLERK_SECRET_KEY",
"CLERK_PUBLISHABLE_KEY",
"SECRET_KEY",
]
missing_vars = []
for var in required_vars:
if not os.getenv(var) or os.getenv(var) == f"your_{var.lower()}_here":
missing_vars.append(var)
if missing_vars:
print("β Missing required environment variables:")
for var in missing_vars:
print(f" - {var}")
print("\nPlease update your .env file with actual values.")
return False
print("β All required environment variables are set")
return True
def main():
"""Main setup function."""
print("π Setting up FastAPI Video Backend development environment...\n")
# Create directories
create_directories()
print()
# Check .env file
if not check_env_file():
sys.exit(1)
print()
# Validate environment variables
try:
if not validate_required_env_vars():
print("\nβ οΈ Setup completed with warnings. Please fix the issues above.")
sys.exit(1)
except ImportError:
print("β οΈ python-dotenv not installed. Skipping environment validation.")
print(" Install dependencies with: pip install -e .")
print("\nβ
Development environment setup completed!")
print("\nNext steps:")
print("1. Install dependencies: pip install -e .")
print("2. Update .env file with your actual configuration values")
print("3. Start Redis server: redis-server")
print("4. Run the application: python -m src.app.main")
print("5. Visit http://localhost:8000/docs for API documentation")
if __name__ == "__main__":
main() |