2 # Copyright (C) 2016 Ian Kelling
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
17 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?"' ERR
20 # stable version is shown on:
21 # https://dist.torproject.org/torbrowser/
22 # except sometimes you get a new stable before it's
23 # officially released, which is ok by me. for example,
24 # right now, it has 6.5.2, but stable is 6.5.1.
25 # we exclude verions with letters, as that seems to
26 # be a relatively reliable indication of alpha/beta releases.
28 vers
=($
(curl
-s https
://dist.torproject.org
/torbrowser
/ \
29 |
sed -rn 's#.*href="([0-9]+\.[0-9]+[.0-9]*)/.*#\1#p' \
34 # by default it has perms for just 1 non-root user, which is ok for now.
40 f
=tor-browser-linux64-
${ver}_en-US.
tar.xz
42 timestamp
=$
(stat
-c %Y
$f)
46 echo wget
-nv -N https
://www.torproject.org
/dist
/torbrowser
/$ver/$f
47 wget
-nv -N https
://www.torproject.org
/dist
/torbrowser
/$ver/$f || ret
=$?
50 # 8 is return code for 404. for a new release, they might not have released to linux yet.
51 if [[ $ret == 8 ]]; then
56 new_timestamp
=$
(stat
-c %Y
$f)
57 if [[ $timestamp != $new_timestamp ||
! -e /a
/opt
/tor-browser_en-US
/Browser
/start-tor-browser
]]; then
58 # not already installed
59 rm -rf tor-browser_en-US
63 for x
in tor-
*.
tar.xz
; do
64 # cleanup old tarballs
66 [[ $x != $f ]] ||
continue
69 s lnf
/a
/opt
/tor-browser_en-US
/Browser
/start-tor-browser
/usr
/local
/bin