fix: parse env safely in enrollment script

This commit is contained in:
2026-01-15 09:34:06 +01:00
parent 1888f59c05
commit 55e452b6a2

View File

@ -39,16 +39,34 @@ while [[ $# -gt 0 ]]; do
esac esac
done done
if [[ -f "${ENV_FILE}" ]]; then read_env_value() {
set -a local key="$1"
# shellcheck disable=SC1090 python3 - <<'PY' "${ENV_FILE}" "${key}"
. "${ENV_FILE}" from pathlib import Path
set +a import sys
fi
SERVICE_URL="${SERVICE_URL:-${SKD_UPDATE_SERVICE_URL:-}}" path = Path(sys.argv[1])
PROJECT_ID="${PROJECT_ID:-${SKD_UPDATE_PROJECT_ID:-}}" key = sys.argv[2]
TOKEN_FILE="${OUTPUT_PATH:-${TOKEN_FILE}}" if not path.exists():
sys.exit(0)
for raw in path.read_text(encoding="utf-8").splitlines():
line = raw.strip()
if not line or line.startswith("#"):
continue
if not line.startswith(f"{key}="):
continue
value = line.split("=", 1)[1].strip()
if (value.startswith('"') and value.endswith('"')) or (value.startswith("'") and value.endswith("'")):
value = value[1:-1]
print(value)
sys.exit(0)
PY
}
SERVICE_URL="${SERVICE_URL:-$(read_env_value SKD_UPDATE_SERVICE_URL)}"
PROJECT_ID="${PROJECT_ID:-$(read_env_value SKD_UPDATE_PROJECT_ID)}"
TOKEN_FILE="${OUTPUT_PATH:-${TOKEN_FILE:-$(read_env_value SKD_UPDATE_TOKEN_FILE)}}"
CLIENT_ID="${CLIENT_ID:-$(hostname)}" CLIENT_ID="${CLIENT_ID:-$(hostname)}"
if [[ -z "${SERVICE_URL}" || -z "${PROJECT_ID}" ]]; then if [[ -z "${SERVICE_URL}" || -z "${PROJECT_ID}" ]]; then