add launch scripts
This commit is contained in:
Executable
+73
@@ -0,0 +1,73 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Lab4 Application Setup & Launch Script
|
||||
Handles venv, dependencies, and database initialization
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
|
||||
def main():
|
||||
# Get the directory where this script is located
|
||||
script_dir = Path(__file__).resolve().parent
|
||||
os.chdir(script_dir)
|
||||
|
||||
print("🔧 Lab4 Application Setup & Launch")
|
||||
print("=" * 50)
|
||||
|
||||
venv_path = script_dir / "venv"
|
||||
requirements_file = script_dir / "requirements.txt"
|
||||
instance_dir = script_dir / "instance"
|
||||
db_file = instance_dir / "accounting.db"
|
||||
|
||||
# Check and create venv if not exists
|
||||
if not venv_path.exists():
|
||||
print("📦 Virtual environment not found. Creating venv...")
|
||||
subprocess.run([sys.executable, "-m", "venv", str(venv_path)], check=True)
|
||||
print("✅ venv created")
|
||||
else:
|
||||
print("✅ venv already exists")
|
||||
|
||||
# Determine the Python executable in venv
|
||||
python_exe = venv_path / "bin" / "python"
|
||||
pip_exe = venv_path / "bin" / "pip"
|
||||
|
||||
if not python_exe.exists():
|
||||
print("❌ Failed to locate Python in venv")
|
||||
sys.exit(1)
|
||||
|
||||
# Install/upgrade requirements
|
||||
if requirements_file.exists():
|
||||
print("📥 Installing dependencies from requirements.txt...")
|
||||
subprocess.run([str(pip_exe), "install", "-q", "--upgrade", "pip"], check=True)
|
||||
subprocess.run([str(pip_exe), "install", "-q", "-r", str(requirements_file)], check=True)
|
||||
print("✅ Dependencies installed")
|
||||
else:
|
||||
print("❌ requirements.txt not found!")
|
||||
sys.exit(1)
|
||||
|
||||
# Create instance directory if not exists
|
||||
if not instance_dir.exists():
|
||||
print("📁 Creating instance directory...")
|
||||
instance_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
# Remove old database to create fresh one
|
||||
if db_file.exists():
|
||||
print("🗑️ Removing old database...")
|
||||
db_file.unlink()
|
||||
|
||||
print()
|
||||
print("=" * 50)
|
||||
print("🚀 Starting Flask Application...")
|
||||
print("=" * 50)
|
||||
print()
|
||||
|
||||
# Run the Flask app
|
||||
subprocess.run([str(python_exe), "app.py"])
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Regular → Executable
Reference in New Issue
Block a user