60 lines
1.4 KiB
Bash
Executable File
60 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
regen_env_version() {
|
|
echo "[fx-pipeline] regenerating .env.version defaults" >&2
|
|
local git_rev branch app_v build_date build_user
|
|
if [[ -n "${WOODPECKER_COMMIT:-}" ]]; then
|
|
git_rev="$(printf '%s' "${WOODPECKER_COMMIT}" | cut -c1-7)"
|
|
elif command -v git >/dev/null 2>&1; then
|
|
git_rev="$(git rev-parse --short HEAD 2>/dev/null || echo dev)"
|
|
else
|
|
git_rev="dev"
|
|
fi
|
|
|
|
if [[ -n "${WOODPECKER_BRANCH:-}" ]]; then
|
|
branch="${WOODPECKER_BRANCH}"
|
|
elif command -v git >/dev/null 2>&1; then
|
|
branch="$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo local)"
|
|
else
|
|
branch="local"
|
|
fi
|
|
|
|
if [[ -f version ]]; then
|
|
app_v="$(cat version 2>/dev/null || echo dev)"
|
|
else
|
|
app_v="dev"
|
|
fi
|
|
|
|
build_date="$(date -u +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo unknown)"
|
|
build_user="${WOODPECKER_MACHINE:-woodpecker}"
|
|
|
|
printf "GIT_REV=%s\nBUILD_BRANCH=%s\nAPP_V=%s\nBUILD_DATE=%s\nBUILD_USER=%s\n" \
|
|
"$git_rev" "$branch" "$app_v" "$build_date" "$build_user" > .env.version
|
|
}
|
|
|
|
ensure_env_version() {
|
|
if [[ ! -s ./.env.version ]]; then
|
|
regen_env_version
|
|
return
|
|
fi
|
|
|
|
local tmp
|
|
tmp="$(mktemp)"
|
|
if ! grep -E '^[[:space:]]*[A-Za-z_][A-Za-z0-9_]*=' ./.env.version >"$tmp"; then
|
|
rm -f "$tmp"
|
|
regen_env_version
|
|
return
|
|
fi
|
|
|
|
if [[ ! -s "$tmp" ]]; then
|
|
rm -f "$tmp"
|
|
regen_env_version
|
|
return
|
|
fi
|
|
|
|
mv "$tmp" ./.env.version
|
|
}
|
|
|
|
ensure_env_version
|