master
1#!/bin/bash
2
3case "$(uname -s)" in
4 Linux*) OS="linux";;
5 Darwin*) OS="darwin";;
6 CYGWIN*|MINGW*|MSYS*) OS="windows";;
7 *) OS="unknown";;
8esac
9
10# detect architecture
11case "$(uname -m)" in
12 x86_64) ARCH="amd64";;
13 aarch64) ARCH="arm64";;
14 arm64) ARCH="arm64";;
15 *) ARCH="unknown";;
16esac
17
18REPO="kahnwong/swissknife"
19GITHUB="https://api.github.com"
20VERSION=`
21 curl --silent "${GITHUB}/repos/{$REPO}/releases/latest" |
22 grep '"tag_name":' |
23 sed -E 's/.*"([^"]+)".*/\1/'
24`
25VERSION_BINARY=$(echo "${VERSION}" | sed 's/^v//')
26FILE="swissknife_${VERSION_BINARY}_${OS}_${ARCH}.tar.gz"
27
28# download
29curl -L -s -o "$FILE" "https://github.com/${REPO}/releases/download/${VERSION}/${FILE}"
30
31# extract
32echo "Extracting ${FILE}..."
33tar -xzvf "${FILE}"
34if [ $? -ne 0 ]; then
35 echo "Error: Failed to extract ${FILE}."
36 exit 1
37fi
38
39# cleanup
40rm -f "${FILE}"
41rm README.md
42
43# success message
44echo "Successfully downloaded and extracted ${FILE}."