Skip to content

Commit b808518

Browse files
authored
Refactor installation script to use temporary directory for downloads and checksum validation
1 parent 1d69e65 commit b808518

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

install.sh

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,20 @@ fi
5050
echo "Downloading from: $DOWNLOAD_URL"
5151

5252
# Download and extract with error handling
53-
TMP_TARBALL="$(mktemp)"
53+
TMP_DIR="$(mktemp -d)"
54+
TMP_TARBALL="$TMP_DIR/copilot-${PLATFORM}-${ARCH}.tar.gz"
5455
if command -v curl >/dev/null 2>&1; then
5556
curl -fsSL "$DOWNLOAD_URL" -o "$TMP_TARBALL"
5657
elif command -v wget >/dev/null 2>&1; then
5758
wget -qO "$TMP_TARBALL" "$DOWNLOAD_URL"
5859
else
5960
echo "Error: Neither curl nor wget found. Please install one of them."
61+
rm -rf "$TMP_DIR"
6062
exit 1
6163
fi
6264

6365
# Attempt to download checksums file and validate
64-
TMP_CHECKSUMS="$(mktemp)"
66+
TMP_CHECKSUMS="$TMP_DIR/SHA256SUMS.txt"
6567
CHECKSUMS_AVAILABLE=false
6668
if command -v curl >/dev/null 2>&1; then
6769
curl -fsSL "$CHECKSUMS_URL" -o "$TMP_CHECKSUMS" 2>/dev/null && CHECKSUMS_AVAILABLE=true
@@ -71,31 +73,30 @@ fi
7173

7274
if [ "$CHECKSUMS_AVAILABLE" = true ]; then
7375
if command -v sha256sum >/dev/null 2>&1; then
74-
if (cd "$(dirname "$TMP_TARBALL")" && sha256sum -c --ignore-missing "$TMP_CHECKSUMS" 2>/dev/null | grep -q "$(basename "$TMP_TARBALL")"); then
76+
if (cd "$TMP_DIR" && sha256sum -c --ignore-missing SHA256SUMS.txt >/dev/null 2>&1); then
7577
echo "✓ Checksum validated"
7678
else
7779
echo "Error: Checksum validation failed." >&2
78-
rm -f "$TMP_TARBALL" "$TMP_CHECKSUMS"
80+
rm -rf "$TMP_DIR"
7981
exit 1
8082
fi
8183
elif command -v shasum >/dev/null 2>&1; then
82-
if (cd "$(dirname "$TMP_TARBALL")" && shasum -a 256 -c --ignore-missing "$TMP_CHECKSUMS" 2>/dev/null | grep -q "$(basename "$TMP_TARBALL")"); then
84+
if (cd "$TMP_DIR" && shasum -a 256 -c --ignore-missing SHA256SUMS.txt >/dev/null 2>&1); then
8385
echo "✓ Checksum validated"
8486
else
8587
echo "Error: Checksum validation failed." >&2
86-
rm -f "$TMP_TARBALL" "$TMP_CHECKSUMS"
88+
rm -rf "$TMP_DIR"
8789
exit 1
8890
fi
8991
else
9092
echo "Warning: No sha256sum or shasum found, skipping checksum validation."
9193
fi
9294
fi
93-
rm -f "$TMP_CHECKSUMS"
9495

9596
# Check that the file is a valid tarball
9697
if ! tar -tzf "$TMP_TARBALL" >/dev/null 2>&1; then
9798
echo "Error: Downloaded file is not a valid tarball or is corrupted." >&2
98-
rm -f "$TMP_TARBALL"
99+
rm -rf "$TMP_DIR"
99100
exit 1
100101
fi
101102

@@ -119,7 +120,7 @@ fi
119120
tar -xz -C "$INSTALL_DIR" -f "$TMP_TARBALL"
120121
chmod +x "$INSTALL_DIR/copilot"
121122
echo "✓ GitHub Copilot CLI installed to $INSTALL_DIR/copilot"
122-
rm -f "$TMP_TARBALL"
123+
rm -rf "$TMP_DIR"
123124

124125
# Check if install directory is in PATH
125126
case ":$PATH:" in

0 commit comments

Comments
 (0)