* improve installation script and enable installation test in CI * disable mac installation check
67 lines
1.4 KiB
Bash
Executable File
67 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
has() {
|
|
type "$1" > /dev/null 2>&1
|
|
}
|
|
|
|
get_package_url() {
|
|
platform=""
|
|
if [ "$(uname)" == "Darwin" ]; then
|
|
platform="macOS"
|
|
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
|
|
platform="Tux"
|
|
elif [ "$(expr substr $(uname -s) 1 10)" == "MINGW32_NT" ]; then
|
|
platform="windows"
|
|
elif [ "$(expr substr $(uname -s) 1 10)" == "MINGW64_NT" ]; then
|
|
platform="windows"
|
|
fi
|
|
|
|
curl https://api.github.com/repos/metrue/fx/releases/latest | grep browser_download_url | awk -F'"' '{print $4}' | grep ${platform}
|
|
}
|
|
|
|
download_and_install() {
|
|
url=$(get_package_url)
|
|
tarFile="fx.tar.gz"
|
|
targetFile=$(pwd)
|
|
|
|
userid=$(id -u)
|
|
if [ "$userid" != "0" ]; then
|
|
tarFile="$(pwd)/${tarFile}"
|
|
else
|
|
tarFile="/tmp/${tarFile}"
|
|
targetFile="/usr/local/bin"
|
|
fi
|
|
|
|
if [ -e $tarFile ]; then
|
|
rm -rf $tarFile
|
|
fi
|
|
|
|
echo "Downloading fx from $url"
|
|
curl -sSLf $url --output $tarFile
|
|
if [ "$?" == "0" ]; then
|
|
echo "Download complete, saved to $tarFile"
|
|
fi
|
|
|
|
echo "Installing fx to ${targetFile}"
|
|
tar -xvzf ${tarFile} --exclude=*.md -C ${targetFile}
|
|
echo "fx installed successfully at ${targetFile}"
|
|
${targetFile}/fx -v
|
|
|
|
echo "Cleaning up ${tarFile}"
|
|
rm -rf ${tarFile}
|
|
}
|
|
|
|
main() {
|
|
if has "curl";then
|
|
download_and_install
|
|
else
|
|
echo "You need cURL to use this script"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# main
|
|
main
|