tmux-thumbs/tmux-thumbs-install.sh
Ferran Basora 3b210d5631 Add a new flow to detect plugin updates
If you update the plugin with TPM, the `thumbs` binary can get out of
sync. So we need to check the version before proceed.

If there is a version mismatch, then we run a new install in "update"
mode.
2022-02-01 23:20:01 +01:00

95 lines
3.9 KiB
Bash
Executable File

#!/usr/bin/env bash
set -Eeu -o pipefail
# Removing the binary to make this script idempotent
rm -rf target/release/thumbs
clear
cat << EOF
█████ █████ █████ █████
░░███ ░░███ ░░███ ░░███
███████ █████████████ █████ ████ █████ █████ ███████ ░███████ █████ ████ █████████████ ░███████ █████
░░░███░ ░░███░░███░░███ ░░███ ░███ ░░███ ░░███ ██████████░░░███░ ░███░░███ ░░███ ░███ ░░███░░███░░███ ░███░░███ ███░░
░███ ░███ ░███ ░███ ░███ ░███ ░░░█████░ ░░░░░░░░░░ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███░░█████
░███ ███ ░███ ░███ ░███ ░███ ░███ ███░░░███ ░███ ███ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░░░░███
░░█████ █████░███ █████ ░░████████ █████ █████ ░░█████ ████ █████ ░░████████ █████░███ █████ ████████ ██████
░░░░░ ░░░░░ ░░░ ░░░░░ ░░░░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░ ░░░░░ ░░░░░░░░ ░░░░░ ░░░ ░░░░░ ░░░░░░░░ ░░░░░░
EOF
if [ "${1:-install}" == "update" ]; then
cat << EOF
⚠️ UPDATE! ⚠️
It looks like you got a new version of tmux-thumbs repository but
the binary version is not in sync.
We are going to proceed with the new installation.
Do you want to continue?
Press any key to continue...
EOF
else
cat << EOF
It looks like this is the first time you are executing tmux-thumbs
because the binary is not present.
We are going to proceed with the installation. If you have Rust preinstalled, we will try to
compile the binary from source. Otherwise, a prebuild binary for your platform will be used.
Do you want to continue?
Press any key to continue...
EOF
fi
read -rs -n 1
if ! [ -x "$(command -v cargo)" ]; then
platform="$(uname -s) $(uname -m)"
echo " Rust is not installed! Trying to install ${platform} binary..."
sources=$(curl -s "https://api.github.com/repos/fcsonline/tmux-thumbs/releases/latest" | grep browser_download_url)
case $platform in
"Darwin x86_64")
url=$(echo "${sources}" | grep -o 'https://.*darwin.zip' | uniq)
curl -sL "${url}" | bsdtar -xf - thumbs tmux-thumbs
;;
"Linux x86_64")
url=$(echo "${sources}" | grep -o 'https://.*linux-musl.tar.gz' | uniq)
curl -sL "${url}" | tar -zxf - thumbs tmux-thumbs
;;
*)
echo "Unknown platform: $platform"
exit 1
;;
esac
chmod +x thumbs tmux-thumbs
mkdir -p target/release
mv thumbs tmux-thumbs target/release
else
echo ' Compiling tmux-thumbs, be patient:'
cargo build --release --target-dir=target
fi
cat << EOF
Installation complete! 💯
Press any key to close this pane...
EOF
read -rs -n 1