t2m / scripts /setup.py
thanhkt's picture
implement core api
50a7bf0
#!/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()