fix: chown .go build cache before build to prevent permission errors

- Build cache may be root-owned from previous builds
- Added sudo_if chown before both update and fresh build steps
- Prevents 'permission denied' on go mod cache writes
This commit is contained in:
Claus Lohmar 2026-06-03 08:14:18 +00:00
parent 67f1a6c845
commit 433b5a4ed8

View file

@ -96,6 +96,8 @@ if [ "${1:-}" = "-update" ]; then
export GOPATH="${INSTALL_DIR}/.go"
export GOCACHE="${INSTALL_DIR}/.go/build"
mkdir -p "${GOMODCACHE}" "${GOCACHE}" 2>/dev/null || sudo_if mkdir -p "${GOMODCACHE}" "${GOCACHE}"
# Ensure the build cache is owned by the app user (was root from earlier builds).
sudo_if chown -R "${APP_USER:-${SUDO_USER:-$(whoami)}}" "${INSTALL_DIR}/.go" 2>/dev/null || true
CGO_ENABLED=0 go build -buildvcs=false -ldflags="-s -w" -o app .
else
warn "Go not found — downloading pre-built binary..."
@ -201,6 +203,8 @@ if command -v go &>/dev/null; then
export GOPATH="${INSTALL_DIR}/.go"
export GOCACHE="${INSTALL_DIR}/.go/build"
mkdir -p "${GOMODCACHE}" "${GOCACHE}" 2>/dev/null || sudo_if mkdir -p "${GOMODCACHE}" "${GOCACHE}"
# Ensure cache is owned by the app user.
sudo_if chown -R "$(whoami):$(whoami)" "${INSTALL_DIR}/.go" 2>/dev/null || true
CGO_ENABLED=0 go build -buildvcs=false -ldflags="-s -w" -o app .
else
info "Go not found — downloading pre-built binary..."