# we exclude verions with letters, as that seems to
# be a relatively reliable indication of alpha/beta releases.
-ver=$(curl -s https://dist.torproject.org/torbrowser/ \
+vers=($(curl -s https://dist.torproject.org/torbrowser/ \
| sed -rn 's#.*href="([0-9]+\.[0-9]+[.0-9]*)/.*#\1#p' \
- | sort -Vr | head -n 1)
+ | sort -Vr))
+
# by default it has perms for just 1 non-root user, which is ok for now.
cd /a/opt
-f=tor-browser-linux64-${ver}_en-US.tar.xz
-timestamp=$(stat -c %Y $f) ||:
-wget -N https://www.torproject.org/dist/torbrowser/$ver/$f
-new_timestamp=$(stat -c %Y $f) ||:
+ver=${vers[0]}
+dl() {
+ f=tor-browser-linux64-${ver}_en-US.tar.xz
+ if [[ -e $f ]]; then
+ timestamp=$(stat -c %Y $f)
+ else
+ timestamp=0
+ fi
+ echo wget -nv -N https://www.torproject.org/dist/torbrowser/$ver/$f
+ wget -nv -N https://www.torproject.org/dist/torbrowser/$ver/$f || ret=$?
+}
+dl
+# 8 is return code for 404. for a new release, they might not have released to linux yet.
+if [[ $ret == 8 ]]; then
+ ver=${vers[1]}
+ dl
+fi
+
+new_timestamp=$(stat -c %Y $f)
if [[ $timestamp != $new_timestamp || ! -e /a/opt/tor-browser_en-US/Browser/start-tor-browser ]]; then
- # not already installed
- rm -rf tor-browser_en-US
- ex $f
+ # not already installed
+ rm -rf tor-browser_en-US
+ ex $f
fi
for x in tor-*.tar.xz; do
- # cleanup old tarballs
- [[ -e $x ]] || break
- [[ $x != $f ]] || continue
- command rm -f $x
+ # cleanup old tarballs
+ [[ -e $x ]] || break
+ [[ $x != $f ]] || continue
+ command rm -f $x
done
s lnf /a/opt/tor-browser_en-US/Browser/start-tor-browser /usr/local/bin