52 lines
1.4 KiB
Bash
52 lines
1.4 KiB
Bash
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
CONFIG_DIR="$PROJECT_DIR/config"
|
|
CONFIG_FILE="$PROJECT_DIR/config.json"
|
|
ENV_FILE="$PROJECT_DIR/.env"
|
|
|
|
if [ -f "$ENV_FILE" ]; then
|
|
set -a
|
|
# shellcheck disable=SC1090
|
|
. "$ENV_FILE"
|
|
set +a
|
|
fi
|
|
|
|
SYSTEM_PYTHON="${PYTHON_PATH:-python3}"
|
|
if ! command -v "$SYSTEM_PYTHON" >/dev/null 2>&1; then
|
|
echo "[ERROR] Python introuvable : $SYSTEM_PYTHON" >&2
|
|
exit 1
|
|
fi
|
|
|
|
ARCHITECTURE="$("$SYSTEM_PYTHON" -c "import json; print(json.load(open(r'$CONFIG_FILE', encoding='utf-8'))['architecture'])")"
|
|
if [ "$(uname -s)" = "Darwin" ]; then
|
|
ENV_NAME="MACenv_${ARCHITECTURE}"
|
|
else
|
|
ENV_NAME="LINenv_${ARCHITECTURE}"
|
|
fi
|
|
ENV_PATH="$CONFIG_DIR/$ENV_NAME"
|
|
PYTHON_IN_VENV="$ENV_PATH/bin/python"
|
|
|
|
if [ ! -x "$PYTHON_IN_VENV" ]; then
|
|
echo "[INFO] Creation de l'environnement $ENV_NAME..."
|
|
"$SYSTEM_PYTHON" -m venv "$ENV_PATH"
|
|
"$PYTHON_IN_VENV" -m pip install --upgrade pip
|
|
"$PYTHON_IN_VENV" -m pip install -r "$CONFIG_DIR/requirements.txt"
|
|
else
|
|
echo "[INFO] Environnement $ENV_NAME trouve."
|
|
fi
|
|
|
|
if command -v code >/dev/null 2>&1; then
|
|
code "$PROJECT_DIR"
|
|
elif [ "$(uname -s)" = "Darwin" ] && command -v open >/dev/null 2>&1; then
|
|
open -a "Visual Studio Code" "$PROJECT_DIR"
|
|
elif command -v xdg-open >/dev/null 2>&1; then
|
|
xdg-open "$PROJECT_DIR"
|
|
else
|
|
echo "[ERROR] Impossible d'ouvrir le projet : installez VS Code (commande code) ou xdg-open." >&2
|
|
exit 1
|
|
fi
|