env: add ensure_env.sh; run.sh sources ~/.4nk_template/.env; docs: document local env management
This commit is contained in:
parent
2dc03071c8
commit
d4b15a0752
@ -17,6 +17,15 @@
|
||||
- bash requis (job CI `bash-required`)
|
||||
- Fallback PowerShell utilisable localement
|
||||
|
||||
## Gestion locale des secrets (~/.4nk_template/.env)
|
||||
|
||||
- Modèle fourni: `scripts/env/.env.template` (clés sans valeurs)
|
||||
- Provisionnement automatique: `scripts/env/ensure_env.sh`
|
||||
- crée `~/.4nk_template/` (chmod 700) et `~/.4nk_template/.env` (chmod 600) si absent
|
||||
- copie depuis le template puis demande de compléter
|
||||
- vérifie les variables essentielles (ex: OPENAI_API_KEY, OPENAI_MODEL)
|
||||
- Chargement automatique: `scripts/agents/run.sh` source `~/.4nk_template/.env` si présent
|
||||
|
||||
## Lints Markdown
|
||||
|
||||
- Configuration: `.markdownlint.json` (MD013 à 200 colonnes, MD024 en siblings_only)
|
||||
|
@ -27,4 +27,3 @@
|
||||
- Branche dédiée, PR petite et ciblée
|
||||
- CI verte, review approuvée
|
||||
- Doc et changelog à jour
|
||||
|
||||
|
@ -1,6 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Chargement env utilisateur (~/.4nk_template/.env)
|
||||
"$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/env/ensure_env.sh" || true
|
||||
if [[ -f "${HOME}/.4nk_template/.env" ]]; then
|
||||
set -a
|
||||
. "${HOME}/.4nk_template/.env"
|
||||
set +a
|
||||
fi
|
||||
|
||||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
TARGET_DIR="${1:-.}"
|
||||
OUTPUT_DIR="${2:-tests/reports/agents}"
|
||||
|
42
scripts/env/ensure_env.sh
vendored
Normal file
42
scripts/env/ensure_env.sh
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
TEMPLATE_FILE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/.env.template"
|
||||
ENV_DIR="${HOME}/.4nk_template"
|
||||
ENV_FILE="${ENV_DIR}/.env"
|
||||
|
||||
mkdir -p "${ENV_DIR}"
|
||||
chmod 700 "${ENV_DIR}" || true
|
||||
|
||||
if [[ ! -f "${ENV_FILE}" ]]; then
|
||||
if [[ -f "${TEMPLATE_FILE}" ]]; then
|
||||
cp "${TEMPLATE_FILE}" "${ENV_FILE}"
|
||||
chmod 600 "${ENV_FILE}" || true
|
||||
echo "Fichier d'environnement créé: ${ENV_FILE}" >&2
|
||||
echo "Veuillez renseigner les variables requises (OPENAI_API_KEY, OPENAI_MODEL, etc.)." >&2
|
||||
exit 3
|
||||
else
|
||||
echo "Modèle d'environnement introuvable: ${TEMPLATE_FILE}" >&2
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
|
||||
# Charger pour validation
|
||||
set -a
|
||||
. "${ENV_FILE}"
|
||||
set +a
|
||||
|
||||
MISSING=()
|
||||
for var in OPENAI_API_KEY OPENAI_MODEL; do
|
||||
if [[ -z "${!var:-}" ]]; then
|
||||
MISSING+=("$var")
|
||||
fi
|
||||
done
|
||||
|
||||
if (( ${#MISSING[@]} > 0 )); then
|
||||
echo "Variables manquantes dans ${ENV_FILE}: ${MISSING[*]}" >&2
|
||||
exit 4
|
||||
fi
|
||||
|
||||
echo "Environnement valide: ${ENV_FILE}" >&2
|
Loading…
x
Reference in New Issue
Block a user