61 lines
2.3 KiB
Bash
Executable File
61 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Enhanced Start Script for Employee Workstation Activity Tracking System
|
|
|
|
# Function to display error and exit
|
|
error_exit() {
|
|
echo "ERROR: $1" >&2
|
|
exit 1
|
|
}
|
|
|
|
# Check if run.py exists
|
|
if [ ! -f "run.py" ]; then
|
|
error_exit "run.py not found in the current directory. Please ensure you are in the project root."
|
|
fi
|
|
|
|
# Check for virtual environment and activate
|
|
if [ -d "venv" ]; then
|
|
echo "Activating virtual environment..."
|
|
source venv/bin/activate
|
|
else
|
|
echo "WARNING: Virtual environment 'venv' not found. Attempting to run without it."
|
|
echo "It is highly recommended to create and use a virtual environment."
|
|
echo "You can create one with: python -m venv venv"
|
|
fi
|
|
|
|
# Determine mode (development or production)
|
|
MODE=${1:-dev} # Default to 'dev' if no argument is provided
|
|
|
|
if [[ "$MODE" == "dev" || "$MODE" == "development" ]]; then
|
|
echo "Starting application in DEVELOPMENT mode..."
|
|
|
|
echo "--- Python Diagnostics ---"
|
|
echo "Which python: $(which python)"
|
|
echo "Which python3: $(which python3)"
|
|
echo "PYTHONPATH: $PYTHONPATH"
|
|
ACTIVE_PYTHON_VERSION=$(python --version 2>&1 || python3 --version 2>&1)
|
|
echo "Active Python version: $ACTIVE_PYTHON_VERSION"
|
|
echo "Attempting to import dotenv directly via command line..."
|
|
python -c "import dotenv; print('dotenv imported successfully. Path:', dotenv.__file__)" || python3 -c "import dotenv; print('dotenv imported successfully. Path:', dotenv.__file__)"
|
|
echo "--- End Python Diagnostics ---"
|
|
|
|
if command -v python &> /dev/null; then
|
|
python run.py
|
|
elif command -v python3 &> /dev/null; then
|
|
python3 run.py
|
|
else
|
|
error_exit "Python interpreter (python or python3) not found. Please ensure Python is installed and in your PATH."
|
|
fi
|
|
elif [[ "$MODE" == "prod" || "$MODE" == "production" ]]; then
|
|
echo "Starting application in PRODUCTION mode using Gunicorn on port 5050..."
|
|
if command -v gunicorn &> /dev/null; then
|
|
# Check if Gunicorn is installed in the venv or globally
|
|
gunicorn -w 4 -b 0.0.0.0:5050 "app:create_app()"
|
|
else
|
|
error_exit "Gunicorn not found. Please install it: pip install gunicorn"
|
|
fi
|
|
else
|
|
echo "Invalid mode specified: $MODE"
|
|
echo "Usage: $0 [dev|development|prod|production]"
|
|
error_exit "Please specify a valid mode."
|
|
fi |