fix: preserve local env overrides in shell pipelines
This commit is contained in:
@@ -4,14 +4,8 @@ set -euo pipefail
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
if [[ -f ".env.local" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source ".env.local"
|
||||
fi
|
||||
if [[ -f ".env" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source ".env"
|
||||
fi
|
||||
while IFS= read -r kv; do export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env.local")
|
||||
while IFS= read -r kv; do key="${kv%%=*}"; [[ -n "$key" && -n "${!key:-}" ]] && continue; export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env")
|
||||
|
||||
if [[ -z "${DATABASE_URL:-}" ]]; then
|
||||
echo "DATABASE_URL 未设置" >&2
|
||||
|
||||
25
scripts/env_precedence_test.sh
Executable file
25
scripts/env_precedence_test.sh
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
TMP_DIR="$(mktemp -d)"
|
||||
trap 'rm -rf "$TMP_DIR"' EXIT
|
||||
|
||||
cat > "$TMP_DIR/.env.local" <<'EOF'
|
||||
LOCAL_ALPHA=test-placeholder-value
|
||||
LOCAL_BETA=real-db
|
||||
EOF
|
||||
cat > "$TMP_DIR/.env" <<'EOF'
|
||||
LOCAL_ALPHA=
|
||||
LOCAL_BETA=
|
||||
EOF
|
||||
|
||||
|
||||
|
||||
unset LOCAL_ALPHA LOCAL_BETA || true
|
||||
while IFS= read -r kv; do export "$kv"; done < <(scripts/load_project_env.sh "$TMP_DIR/.env.local")
|
||||
while IFS= read -r kv; do key="${kv%%=*}"; [[ -n "$key" && -n "${!key:-}" ]] && continue; export "$kv"; done < <(scripts/load_project_env.sh "$TMP_DIR/.env")
|
||||
[[ "$LOCAL_ALPHA" == "test-placeholder-value" ]]
|
||||
[[ "$LOCAL_BETA" == "real-db" ]]
|
||||
21
scripts/load_project_env.sh
Executable file
21
scripts/load_project_env.sh
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
PATH_ARG="${1:-}"
|
||||
[[ -n "$PATH_ARG" && -f "$PATH_ARG" ]] || exit 0
|
||||
|
||||
python3 - <<'PY' "$PATH_ARG"
|
||||
from pathlib import Path
|
||||
import sys
|
||||
|
||||
for raw in Path(sys.argv[1]).read_text().splitlines():
|
||||
s = raw.strip()
|
||||
if not s or s.startswith('#') or '=' not in s:
|
||||
continue
|
||||
key, value = s.split('=', 1)
|
||||
key = key.strip()
|
||||
value = value.strip().strip('"').strip("'")
|
||||
if not key or not value:
|
||||
continue
|
||||
print(f"{key}={value}")
|
||||
PY
|
||||
@@ -12,14 +12,8 @@ fi
|
||||
REPORT_DATE="$1"
|
||||
shift || true
|
||||
|
||||
if [[ -f ".env.local" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source ".env.local"
|
||||
fi
|
||||
if [[ -f ".env" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source ".env"
|
||||
fi
|
||||
while IFS= read -r kv; do export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env.local")
|
||||
while IFS= read -r kv; do key="${kv%%=*}"; [[ -n "$key" && -n "${!key:-}" ]] && continue; export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env")
|
||||
|
||||
REPORT_DATE="$REPORT_DATE" \
|
||||
REPORT_RUN_KIND="historical_rebuild" \
|
||||
|
||||
@@ -5,8 +5,9 @@ set -euo pipefail
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
source .env.local 2>/dev/null || true
|
||||
source .env 2>/dev/null || true
|
||||
while IFS= read -r kv; do export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env.local")
|
||||
while IFS= read -r kv; do key="${kv%%=*}"; [[ -n "$key" && -n "${!key:-}" ]] && continue; export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env")
|
||||
source scripts/report_utils.sh
|
||||
source scripts/report_utils.sh
|
||||
|
||||
if [[ -z "${DATABASE_URL:-}" ]]; then
|
||||
|
||||
@@ -15,14 +15,8 @@ if [[ ! -f "$BACKUP_FILE" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -f ".env.local" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source ".env.local"
|
||||
fi
|
||||
if [[ -f ".env" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source ".env"
|
||||
fi
|
||||
while IFS= read -r kv; do export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env.local")
|
||||
while IFS= read -r kv; do key="${kv%%=*}"; [[ -n "$key" && -n "${!key:-}" ]] && continue; export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env")
|
||||
|
||||
DB_URL="${DATABASE_URL:-host=/var/run/postgresql dbname=llm_intelligence user=long sslmode=disable}"
|
||||
|
||||
|
||||
@@ -5,14 +5,8 @@ set -euo pipefail
|
||||
|
||||
PROJECT_DIR="/home/long/project/llm-intelligence"
|
||||
. "$PROJECT_DIR/scripts/report_utils.sh"
|
||||
if [[ -f "$PROJECT_DIR/.env.local" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source "$PROJECT_DIR/.env.local"
|
||||
fi
|
||||
if [[ -f "$PROJECT_DIR/.env" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source "$PROJECT_DIR/.env"
|
||||
fi
|
||||
while IFS= read -r kv; do export "$kv"; done < <("$PROJECT_DIR/scripts/load_project_env.sh" "$PROJECT_DIR/.env.local")
|
||||
while IFS= read -r kv; do [[ -n "${kv%%=*}" && -n "${!kv%%=*:-}" ]] && continue; export "$kv"; done < <("$PROJECT_DIR/scripts/load_project_env.sh" "$PROJECT_DIR/.env")
|
||||
DB_URL="${DATABASE_URL:-host=/var/run/postgresql dbname=llm_intelligence user=long sslmode=disable}"
|
||||
export DATABASE_URL="$DB_URL"
|
||||
REPORT_DATE="$(report_date_value)"
|
||||
|
||||
@@ -4,14 +4,8 @@ set -euo pipefail
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
if [[ -f ".env.local" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source ".env.local"
|
||||
fi
|
||||
if [[ -f ".env" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source ".env"
|
||||
fi
|
||||
while IFS= read -r kv; do export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env.local")
|
||||
while IFS= read -r kv; do key="${kv%%=*}"; [[ -n "$key" && -n "${!key:-}" ]] && continue; export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env")
|
||||
|
||||
if [[ -z "${DATABASE_URL:-}" ]]; then
|
||||
echo "DATABASE_URL 未设置" >&2
|
||||
|
||||
@@ -4,14 +4,8 @@ set -euo pipefail
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
if [[ -f ".env.local" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source ".env.local"
|
||||
fi
|
||||
if [[ -f ".env" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source ".env"
|
||||
fi
|
||||
while IFS= read -r kv; do export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env.local")
|
||||
while IFS= read -r kv; do key="${kv%%=*}"; [[ -n "$key" && -n "${!key:-}" ]] && continue; export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env")
|
||||
|
||||
if [[ -z "${DATABASE_URL:-}" ]]; then
|
||||
echo "DATABASE_URL 未设置" >&2
|
||||
|
||||
@@ -4,14 +4,8 @@ set -euo pipefail
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
if [[ -f ".env.local" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source ".env.local"
|
||||
fi
|
||||
if [[ -f ".env" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source ".env"
|
||||
fi
|
||||
while IFS= read -r kv; do export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env.local")
|
||||
while IFS= read -r kv; do key="${kv%%=*}"; [[ -n "$key" && -n "${!key:-}" ]] && continue; export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env")
|
||||
|
||||
if [[ -z "${DATABASE_URL:-}" ]]; then
|
||||
echo "DATABASE_URL 未设置" >&2
|
||||
|
||||
@@ -4,15 +4,8 @@ set -euo pipefail
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
. "$ROOT_DIR/scripts/report_utils.sh"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
if [[ -f ".env.local" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source ".env.local"
|
||||
fi
|
||||
if [[ -f ".env" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source ".env"
|
||||
fi
|
||||
while IFS= read -r kv; do export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env.local")
|
||||
while IFS= read -r kv; do key="${kv%%=*}"; [[ -n "$key" && -n "${!key:-}" ]] && continue; export "$kv"; done < <("$ROOT_DIR/scripts/load_project_env.sh" ".env")
|
||||
|
||||
if [[ -z "${DATABASE_URL:-}" ]]; then
|
||||
echo "DATABASE_URL 未设置" >&2
|
||||
|
||||
Reference in New Issue
Block a user