X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=tor-browser;h=c105e6e42ba0ff70592b9ddc7034207ae2afb5e1;hb=65a0d6984b02937e49093c32c37b5cfbc26e3b79;hp=69547ec31e77f08970e91104c6bfa1c087fc3713;hpb=70538a2a935f067db0aeef8ed9b6746198265363;p=buildscripts diff --git a/tor-browser b/tor-browser index 69547ec..c105e6e 100755 --- a/tor-browser +++ b/tor-browser @@ -1,4 +1,4 @@ -#!/bin/bash -l +#!/bin/bash # Copyright (C) 2016 Ian Kelling # Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,37 +13,56 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -eE -o pipefail -trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?"' ERR +if [[ -s ~/.bashrc ]];then . ~/.bashrc;fi # stable version is shown on: # https://dist.torproject.org/torbrowser/ +# except sometimes you get a new stable before it's +# officially released, which is ok by me. for example, +# right now, it has 6.5.2, but stable is 6.5.1. +# we exclude verions with letters, as that seems to +# be a relatively reliable indication of alpha/beta releases. + +vers=($(curl -s https://dist.torproject.org/torbrowser/ \ + | sed -rn 's#.*href="([0-9]+\.[0-9]+[.0-9]*)/.*#\1#p' \ + | sort -Vr)) -ver=$(curl -s https://dist.torproject.org/torbrowser/ \ - | sed -rn 's/.*href="([0-9]+\.[0-9]+[.0-9]*)\/.*/\1/p' \ - | sort -Vr | head -n 1) # 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) ||: -if [[ $timestamp == $new_timestamp && -e /a/opt/tor-browser_en-US/Browser/start-tor-browser ]]; then - # already installed - exit 0 +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 + tar Jxf $f fi -rm -rf tor-browser_en-US -ex $f 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 +sudo ln -sf /a/opt/tor-browser_en-US/Browser/start-tor-browser /usr/local/bin