nginx-ui/resources/demo/install.sh
2022-02-27 00:27:17 +08:00

78 lines
2.3 KiB
Bash

#!/usr/bin/env bash
PROXY=""
RPROXY="https://ghproxy.com/"
MACHINE="amd64"
# Font color
FontBlack="\033[30m";
FontRed="\033[31m";
FontGreen="\033[32m";
FontYellow="\033[33m";
FontBlue="\033[34m";
FontPurple="\033[35m";
FontSkyBlue="\033[36m";
FontWhite="\033[37m";
FontSuffix="\033[0m";
get_latest_version() {
# Get latest release version number
local latest_release
if ! latest_release=$(curl -x "${PROXY}" -sS -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/0xJacky/nginx-ui/releases/latest"); then
echo -e "${FontRed}error: Failed to get release list, please check your network.${FontSuffix}"
exit 1
fi
RELEASE_LATEST="$(echo "$latest_release" | sed 'y/,/\n/' | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')"
if [[ -z "$RELEASE_LATEST" ]]; then
if echo "$latest_release" | grep -q "API rate limit exceeded"; then
echo -e "${FontRed}error: github API rate limit exceeded${FontSuffix}"
else
echo -e "${FontRed}error: Failed to get the latest release version.${FontSuffix}"
echo "Welcome bug report: https://github.com/0xJacky/nginx-ui/issues"
fi
exit 1
fi
RELEASE_LATEST="v${RELEASE_LATEST#v}"
}
download_nginx_ui() {
local download_link
download_link="${RPROXY}https://github.com/0xJacky/nginx-ui/releases/download/$RELEASE_LATEST/nginx-ui-linux-$MACHINE.tar.gz"
echo "Downloading Nginx UI archive: $download_link"
if ! curl -x "${PROXY}" -R -H 'Cache-Control: no-cache' -L -o "$TAR_FILE" "$download_link"; then
echo 'error: Download failed! Please check your network or try again.'
return 1
fi
return 0
}
decompression() {
echo "$1"
if ! tar -zxf "$1" -C "$TMP_DIRECTORY"; then
echo -e "${FontRed}error: Nginx UI decompression failed.${FontSuffix}"
"rm" -r "$TMP_DIRECTORY"
echo "removed: $TMP_DIRECTORY"
exit 1
fi
echo "info: Extract the Nginx UI package to $TMP_DIRECTORY and prepare it for installation."
}
install_bin() {
NAME="nginx-ui"
install -m 755 "${TMP_DIRECTORY}/$NAME" "/app/$NAME"
}
main() {
# Important Variables
TMP_DIRECTORY="$(mktemp -d)"
TAR_FILE="${TMP_DIRECTORY}/nginx-ui-linux-$MACHINE.tar.gz"
get_latest_version
download_nginx_ui
decompression "$TAR_FILE"
install_bin
}
main "$@"