generated from LouisMazin/PythonApplicationTemplate
59 lines
1.5 KiB
Bash
59 lines
1.5 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
# Root paths
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
CONFIG_FILE="$ROOT_DIR/config.json"
|
|
REQUIREMENTS="$ROOT_DIR/requirements.txt"
|
|
ENV_FILE="$ROOT_DIR/.env"
|
|
|
|
# Check if .env exists
|
|
if [[ ! -f "$ENV_FILE" ]]; then
|
|
echo "[ERROR] .env file not found. Please copy .env.example to .env and configure it."
|
|
exit 1
|
|
fi
|
|
|
|
# Extract architecture from config.json (requires jq)
|
|
if ! command -v jq &>/dev/null; then
|
|
echo "[ERROR] 'jq' is required. Install it with: brew install jq"
|
|
exit 1
|
|
fi
|
|
ARCHITECTURE=$(jq -r '.architecture' "$CONFIG_FILE")
|
|
|
|
# Extract python path from .env
|
|
PYTHON_EXEC=$(grep -E "^PYTHON_PATH=" "$ENV_FILE" | cut -d '=' -f2)
|
|
|
|
# Construct venv path
|
|
ENV_NAME="MACenv_$ARCHITECTURE"
|
|
ENV_PATH="$ROOT_DIR/$ENV_NAME"
|
|
|
|
# Check python executable
|
|
if [[ ! -x "$PYTHON_EXEC" ]]; then
|
|
echo "[ERROR] Python not found at: $PYTHON_EXEC"
|
|
echo "Please check your .env or installation path."
|
|
exit 1
|
|
fi
|
|
|
|
# Show info
|
|
echo "[INFO] Configuration:"
|
|
echo " Python: $PYTHON_EXEC"
|
|
echo " Env: $ENV_NAME"
|
|
|
|
# Create virtual env if missing
|
|
if [[ ! -d "$ENV_PATH/bin" ]]; then
|
|
echo "[INFO] Virtual environment not found, creating..."
|
|
"$PYTHON_EXEC" -m venv "$ENV_PATH"
|
|
echo "[INFO] Installing dependencies..."
|
|
"$ENV_PATH/bin/python" -m pip install --upgrade pip
|
|
"$ENV_PATH/bin/pip" install -r "$REQUIREMENTS"
|
|
else
|
|
echo "[INFO] Virtual environment found."
|
|
fi
|
|
|
|
# Activate and launch VS Code
|
|
echo "[INFO] Launching VS Code..."
|
|
# shellcheck source=/dev/null
|
|
source "$ENV_PATH/bin/activate"
|
|
open -a "Visual Studio Code" "$ROOT_DIR"
|
|
|
|
exit 0 |