Files
turmlibar-calendar/setup.py
2025-10-30 13:33:08 +01:00

100 lines
3.4 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Setup script to ensure all required assets and directories are in place.
Run this after cloning the repository or if assets are missing.
"""
import shutil
from pathlib import Path
import sys
def setup_assets():
"""Ensure all required assets and directories are properly configured."""
print("🔧 Setting up Turmli Bar Calendar Tool assets...")
# Create static directory if it doesn't exist
static_dir = Path("static")
if not static_dir.exists():
static_dir.mkdir(exist_ok=True)
print("✅ Created static directory")
else:
print("✅ Static directory already exists")
# Check for logo files
logo_files = [
"Vektor-Logo.svg",
"Vector-Logo.svg", # Alternative spelling
"logo.svg"
]
logo_found = False
for logo_name in logo_files:
logo_source = Path(logo_name)
if logo_source.exists():
logo_dest = static_dir / "logo.svg"
if not logo_dest.exists():
shutil.copy2(logo_source, logo_dest)
print(f"✅ Copied {logo_name} to static/logo.svg")
else:
print(f"✅ Logo already exists in static directory")
logo_found = True
break
if not logo_found:
print("⚠️ Warning: No logo file found. The application will work but won't display a logo.")
print(" To add a logo, place one of the following files in the project root:")
print(" - Vektor-Logo.svg")
print(" - Vector-Logo.svg")
print(" - logo.svg")
# Create cache directory structure
cache_dir = Path(".cache")
if not cache_dir.exists():
cache_dir.mkdir(exist_ok=True)
print("✅ Created cache directory")
# Check for required Python version
if sys.version_info < (3, 13):
print(f"⚠️ Warning: Python {sys.version_info.major}.{sys.version_info.minor} detected.")
print(" This application requires Python 3.13 or higher for optimal performance.")
else:
print(f"✅ Python {sys.version_info.major}.{sys.version_info.minor} is compatible")
# Check for UV installation
uv_installed = shutil.which("uv") is not None
if uv_installed:
print("✅ UV package manager is installed")
else:
print("⚠️ Warning: UV package manager not found.")
print(" Install UV from: https://github.com/astral-sh/uv")
print(" Or use pip with: pip install -r requirements.txt")
# Create .env file from template if it doesn't exist
env_file = Path(".env")
env_example = Path(".env.example")
if not env_file.exists() and env_example.exists():
shutil.copy2(env_example, env_file)
print("✅ Created .env file from template")
print(" Please edit .env to configure your settings")
elif env_file.exists():
print("✅ .env file already exists")
print("\n🎉 Setup complete!")
print("\nTo start the server, run:")
if uv_installed:
print(" ./run.sh")
print(" or")
print(" make run")
else:
print(" python main.py")
print("\nThen open your browser to: http://localhost:8000")
if __name__ == "__main__":
try:
setup_assets()
except Exception as e:
print(f"❌ Error during setup: {e}")
sys.exit(1)