fix: remove old binary before rebuild — prevents permission denied when overwriting root-owned file
- go build can't overwrite a root-owned binary as app user - Added rm -f app before go build in both update and fresh install paths - Also chown the app binary alongside .go cache
This commit is contained in:
parent
433b5a4ed8
commit
f8d3cb6b33
1 changed files with 5 additions and 3 deletions
|
|
@ -96,8 +96,9 @@ 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
|
||||
# Ensure build cache and old binary are writable by the app user.
|
||||
sudo_if chown -R "${APP_USER:-${SUDO_USER:-$(whoami)}}" "${INSTALL_DIR}/.go" "${INSTALL_DIR}/app" 2>/dev/null || true
|
||||
rm -f app
|
||||
CGO_ENABLED=0 go build -buildvcs=false -ldflags="-s -w" -o app .
|
||||
else
|
||||
warn "Go not found — downloading pre-built binary..."
|
||||
|
|
@ -204,7 +205,8 @@ if command -v go &>/dev/null; then
|
|||
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
|
||||
sudo_if chown -R "$(whoami):$(whoami)" "${INSTALL_DIR}/.go" "${INSTALL_DIR}/app" 2>/dev/null || true
|
||||
rm -f app
|
||||
CGO_ENABLED=0 go build -buildvcs=false -ldflags="-s -w" -o app .
|
||||
else
|
||||
info "Go not found — downloading pre-built binary..."
|
||||
|
|
|
|||
Loading…
Reference in a new issue