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}."