e() { printf "$pre %s\n" "$*"; }
err() { echo "[$(date +'%Y-%m-%d %H:%M:%S%z')]: $0: $*" >&2; }
+
m cd /a/opt/go.git
-m git fetch
-vers=($(git tag | sort -Vr | grep -E '^go[0-9.]+$' | head))
-
-ver=${vers[0]}
-dl() {
- arch=$(dpkg --print-architecture)
- f=${ver}.linux-${arch}.tar.gz
-
- if [[ -e $f ]]; then
- timestamp=$(stat -c %Y $f)
- else
- timestamp=0
- fi
- m wget -N https://dl.google.com/go/$f || ret=$?
-}
-dl
-# 8 is return code for 404. for a new release, they might not have a binary out yet
-if [[ $ret == 8 ]]; then
- ver=${vers[1]}
+# don't check for updates on go more than once a day
+yesterday=$(( $(date +%s) - 60*60*24 ))
+if (( $(stat -c %Y FETCH_HEAD) < yesterday )); then
+ m git fetch
+ touch ~/.local/gofetch
+
+ vers=($(git tag | sort -Vr | grep -E '^go[0-9.]+$' | head))
+
+ ver=${vers[0]}
+ dl() {
+ arch=$(dpkg --print-architecture)
+ f=${ver}.linux-${arch}.tar.gz
+
+ if [[ -e $f ]]; then
+ timestamp=$(stat -c %Y $f)
+ else
+ timestamp=0
+ fi
+ m wget -N https://dl.google.com/go/$f || ret=$?
+ }
dl
-fi
+ # 8 is return code for 404. for a new release, they might not have a binary out yet
+ if [[ $ret == 8 ]]; then
+ ver=${vers[1]}
+ dl
+ fi
+
+ new_timestamp=$(stat -c %Y $f)
+ if [[ $timestamp != $new_timestamp || ! -e /usr/local/go/bin/go ]]; then
+ m sudo rm -rf /usr/local/go
+ m sudo tar -C /usr/local -xzf $f
+ fi
+
+ shopt -s nullglob
+ for x in go*.tar.gz; do
+ if [[ $x == $f ]]; then continue; fi
+ rm -fv $x
+ done
-new_timestamp=$(stat -c %Y $f)
-if [[ $timestamp != $new_timestamp || ! -e /usr/local/go/bin/go ]]; then
- m sudo rm -rf /usr/local/go
- m sudo tar -C /usr/local -xzf $f
fi
-shopt -s nullglob
-for x in go*.tar.gz; do
- if [[ $x == $f ]]; then continue; fi
- rm -fv $x
-done
go get -u mvdan.cc/fdroidcl