27 lines
1021 B
Bash
Executable File
27 lines
1021 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 'BurntSushi/ripgrep')"
|
|
|
|
latest_amd64_deb_release_url="https://github.com/BurntSushi/ripgrep/releases/download/${latest_version}/ripgrep_${latest_version}_amd64.deb"
|
|
|
|
rm -rf /tmp/latest_ripgrep
|
|
mkdir -p /tmp/latest_ripgrep/tmp
|
|
mkdir -p "${HOME}/.local/bin"
|
|
printf '\033[32m%s\033[m' "Downloading..."
|
|
wget "${latest_amd64_deb_release_url}" -qO "/tmp/latest_ripgrep/rg.deb"
|
|
printf '\b\b \n'
|
|
printf '\033[32m%s\033[m' "Unpacking deb..."
|
|
dpkg-deb -R "/tmp/latest_ripgrep/rg.deb" "/tmp/latest_ripgrep/tmp"
|
|
printf '\b\b \n'
|
|
mv "/tmp/latest_ripgrep/tmp/usr/bin/rg" "${HOME}/.local/bin/rg"
|
|
rm -rf /tmp/latest_ripgrep
|
|
printf '\033[32m%s\033[m\n' "Done."
|