From e8eff4a1c3b43b4148871fb88143dc138ec79230 Mon Sep 17 00:00:00 2001 From: Anveshkumar Kolluri Date: Fri, 20 Feb 2026 17:32:36 -0800 Subject: [PATCH] fix: add trap to clean up temp directory on unexpected exit install.sh uses \set -e\ which terminates the script on any command failure. When this happens (e.g., download 404, network error), the temp directory created by \mktemp -d\ is never cleaned up because the manual \ m -rf\ calls only cover explicitly handled error paths. Add a \ rap ... EXIT\ immediately after creating the temp directory to ensure cleanup on all exit paths. This also removes the now- redundant manual cleanup calls, simplifying the error handling. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- install.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/install.sh b/install.sh index fb3d3d49..782dd221 100755 --- a/install.sh +++ b/install.sh @@ -65,6 +65,7 @@ echo "Downloading from: $DOWNLOAD_URL" # Download and extract with error handling TMP_DIR="$(mktemp -d)" +trap 'rm -rf "$TMP_DIR"' EXIT TMP_TARBALL="$TMP_DIR/copilot-${PLATFORM}-${ARCH}.tar.gz" if command -v curl >/dev/null 2>&1; then curl -fsSL "$DOWNLOAD_URL" -o "$TMP_TARBALL" @@ -72,7 +73,6 @@ elif command -v wget >/dev/null 2>&1; then wget -qO "$TMP_TARBALL" "$DOWNLOAD_URL" else echo "Error: Neither curl nor wget found. Please install one of them." - rm -rf "$TMP_DIR" exit 1 fi @@ -91,7 +91,6 @@ if [ "$CHECKSUMS_AVAILABLE" = true ]; then echo "✓ Checksum validated" else echo "Error: Checksum validation failed." >&2 - rm -rf "$TMP_DIR" exit 1 fi elif command -v shasum >/dev/null 2>&1; then @@ -99,7 +98,6 @@ if [ "$CHECKSUMS_AVAILABLE" = true ]; then echo "✓ Checksum validated" else echo "Error: Checksum validation failed." >&2 - rm -rf "$TMP_DIR" exit 1 fi else @@ -110,7 +108,6 @@ fi # Check that the file is a valid tarball if ! tar -tzf "$TMP_TARBALL" >/dev/null 2>&1; then echo "Error: Downloaded file is not a valid tarball or is corrupted." >&2 - rm -rf "$TMP_DIR" exit 1 fi @@ -134,7 +131,6 @@ fi tar -xz -C "$INSTALL_DIR" -f "$TMP_TARBALL" chmod +x "$INSTALL_DIR/copilot" echo "✓ GitHub Copilot CLI installed to $INSTALL_DIR/copilot" -rm -rf "$TMP_DIR" # Check if installed binary is accessible if ! command -v copilot >/dev/null 2>&1; then