42_scripts/get_latest_fd.sh

28 lines
1008 B
Bash
Executable File

#!/usr/bin/bash
set -euo pipefail
get_latest_release () {
curl --silent "https://api.github.com/repos/$1/releases/latest" | # Get latest release from GitHub api
grep '"tag_name":' | # Get tag line
sed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value
}
latest_version="$(get_latest_release 'sharkdp/fd')"
latest_version="${latest_version#v}"
latest_amd64_deb_release_url="https://github.com/sharkdp/fd/releases/download/v${latest_version}/fd-musl_${latest_version}_amd64.deb"
rm -rf /tmp/latest_fd
mkdir -p /tmp/latest_fd/tmp
mkdir -p "${HOME}/.local/bin"
printf '\033[32m%s\033[m' "Downloading..."
wget "${latest_amd64_deb_release_url}" -qO "/tmp/latest_fd/rg.deb"
printf '\b\b \n'
printf '\033[32m%s\033[m' "Unpacking deb..."
dpkg-deb -R "/tmp/latest_fd/rg.deb" "/tmp/latest_fd/tmp"
printf '\b\b \n'
mv "/tmp/latest_fd/tmp/usr/bin/fd" "${HOME}/.local/bin/fd"
rm -rf /tmp/latest_fd
printf '\033[32m%s\033[m\n' "Done."