From f382ed2d1afda8fbf39f97f44f4e73c385505bd6 Mon Sep 17 00:00:00 2001 From: Advait Patel Date: Thu, 20 Feb 2025 01:02:24 -0600 Subject: [PATCH] Improve Error Handling and Dependency Checks in build.sh Although, the project says to have GO as a pre-req but having something to catch and check the dependency beforehand helps. Therefore, refactoring the script to add the check first before running to handle the script in a better way. Issue: The script does not check for Go installation before running go build. Fix: Added a dependency check to prevent build failures. --- build.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/build.sh b/build.sh index 78b1bfc..39b44b4 100755 --- a/build.sh +++ b/build.sh @@ -1,5 +1,11 @@ #!/bin/bash +# check if `go` is installed or not +if ! command -v go &> /dev/null; then + echo "Error: Go is not installed. Please install Go before running this script." + exit 1 +fi + BINFILE=watchtower if [ -n "$MSYSTEM" ]; then BINFILE=watchtower.exe @@ -7,3 +13,10 @@ fi VERSION=$(git describe --tags) echo "Building $VERSION..." go build -o $BINFILE -ldflags "-X github.com/containrrr/watchtower/internal/meta.Version=$VERSION" + +if [ $? -ne 0 ]; then + echo "Error: Build failed!" + exit 1 +fi + +echo "Build successful!" \ No newline at end of file