latest-gopass/get.sh

38 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env sh
# get recent release version
uname=$(uname -a)
echo $uname|grep -i "debian" && { fn_suffix="linux-amd64.deb"; }
echo $uname|grep -i "openbsd" && { fn_suffix="openbsd-amd64.tar.gz"; }
echo $uname|grep -i "freebsd" && { fn_suffix="freebsd-amd64.tar.gz"; }
test -z $fn_suffix && { echo "operating system not supported."; exit 1; }
url_effective=$(curl -sLI -o /dev/null -w %{url_effective} https://github.com/gopasspw/gopass/releases/latest)
url=$(echo ${url_effective} | sed 's/\/tag\//\/download\//')"/"
ver=$(echo -n $url | cut -d'/' -f8 | cut -d"v" -f2)
fn1="gopass"
fn_package=${fn1}"-"${ver}"-"${fn_suffix}
fn_SHA256=${fn1}"_"${ver}"_SHA256SUMS"
# download files: deb and checksums
curl -L $url$fn_package -o $fn_package || { echo "download failed"; exit 1; }
curl -L $url$fn_SHA256 -o $fn_SHA256 || { echo "download failed"; exit 1; }
# test checksums
$(cat ${fn_SHA256} |grep $$(sha256sum $fn_package)) && {
# test filesize, didnt see any near 10 MB
test $(du $fn_SHA256) -lt 10240 || { echo "manually check exceptionally large file before installation."; exit 1; }
# maybe install
case $(echo $fn_suffix|cut -d"-" -f1) in
linux)
sudo dpkg -i ${fn_package}
break
;;
*)
echo "please install manually"
;;
esac
} || {
echo "checksum failed"#; exit 1
}