Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- #
- # Copyright (C) 2009 Benjamin Drung <bdrung at ubuntu dot com>
- # Copyright (C) 2012 Alessio Sergi <al3hex at gmail dot com>
- #
- #
- # This program is free software: you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation, either version 3 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
- set -e
- # filled by the PKGBUILD
- NAME='REPL_NAME'
- VERSION='REPL_VERSION'
- LANGUAGE="REPL_LANGUAGE"
- DIRECTORY=~/.$NAME
- INSTALL_DIRECTORY=$DIRECTORY/INSTALL
- VERSION_FILE=$DIRECTORY/VERSION
- LOG_FILE=$DIRECTORY/LOG
- ARCH=$(uname -m)
- DOWNLOAD_URL="https://www.torproject.org/dist/torbrowser/linux/tor-browser-gnu-linux-${ARCH}-${VERSION}-${LANGUAGE}.tar.gz"
- SIG_URL=$DOWNLOAD_URL.asc
- notify() {
- local title="$1"
- local message="$2"
- if [ $(which zenity 2>/dev/null) ]; then
- zenity --info --title "$title" --text "$message"
- elif [ $(which notify-send 2>/dev/null) ]; then
- notify-send "$title" "$message"
- elif [ $(which kdialog 2>/dev/null) ]; then
- kdialog --title "$title" --passivepopup "$message"
- else
- echo -e "$0: [$title] $message" >&2
- fi
- }
- update() {
- # remove previous installation and archives
- rm -rf $INSTALL_DIRECTORY/* $DIRECTORY/*.tar.gz $DIRECTORY/*.asc
- notify "Info" "Downloading and installing package archive, please be patient.\
- \nTor-Browser will start automatically afterwards." &
- echo "$0: Downloading $DOWNLOAD_URL." >> $LOG_FILE
- wget $DOWNLOAD_URL >> $LOG_FILE 2>&1 || notify "Error" \
- "The tor-browser archive could not be downloaded. \
- \nCheck your Internet connection and try again. \
- \nThe error log can be found in $LOG_FILE."
- echo "$0: Downloading $SIG_URL" >> $LOG_FILE
- wget $SIG_URL >> $LOG_FILE 2>&1 || notify "Error" \
- "The tor-browser archive signature file could not be downloaded. \
- \nCheck your Internet connection and try again. \
- \nThe error log can be found in $LOG_FILE."
- # if [ $(which gpg 2>/dev/null) ]; then
- # gpg --auto-key-locate x-hkp://pool.sks-keyservers.net \
- # --verify tor-browser-gnu-linux-${ARCH}-${VERSION}-${LANGUAGE}.tar.gz.asc \
- # tor-browser-gnu-linux-${ARCH}-${VERSION}-${LANGUAGE}.tar.gz \
- # >> $LOG_FILE 2>&1 || notify "Warning" \
- # "Problems checking the signature of \
- # tor-browser-gnu-linux-${ARCH}-${VERSION}.tar.gz. \
- # \nEither there was an error retrieving the public key or the signature is incorrect!\
- # \nThe log file can be found in $LOG_FILE."
- # fi
- tar -xzf tor-browser-gnu-linux-${ARCH}-${VERSION}-${LANGUAGE}.tar.gz -C $INSTALL_DIRECTORY >> $LOG_FILE 2>&1 || notify "Error" \
- "Error unpacking tor-browser-gnu-linux-${ARCH}-${VERSION}-${LANGUAGE}.tar.gz. \
- \nThe error log can be found in $LOG_FILE."
- mv $INSTALL_DIRECTORY/tor-browser_${LANGUAGE}/* $INSTALL_DIRECTORY >> $LOG_FILE 2>&1
- rm -rf $INSTALL_DIRECTORY/tor-browser_${LANGUAGE}/ tor-browser-gnu-linux-${ARCH}-${VERSION}-${LANGUAGE}.tar.gz tor-browser-gnu-linux-${ARCH}-${VERSION}-${LANGUAGE}.tar.gz.asc >> $LOG_FILE 2>&1
- [[ -f $INSTALL_DIRECTORY/start-tor-browser ]] && echo $VERSION > $VERSION_FILE
- }
- usage() {
- cat <<EOF
- Usage: ${0##*/} [option]
- Options:
- -h Show this help message and exit
- -u Force update
- -r <directory> The Tor-Browser directory to use
- EOF
- }
- while getopts ':hr:u' opt; do
- case "$opt" in
- h) usage; exit 0 ;;
- r) DIRECTORY="$OPTARG" ;;
- u) update=1 ;;
- :) echo "$0: Option '-$OPTARG' requires an argument" >&2
- exit 1 ;;
- *) echo "$0: Invalid option '-$OPTARG'" >&2
- usage; exit 1 ;;
- esac
- done
- # create directory, if it is missing (e.g. first run)
- [[ ! -d "$INSTALL_DIRECTORY" ]] && mkdir -p "$INSTALL_DIRECTORY"
- cd "$DIRECTORY"
- # clear log
- > $LOG_FILE
- # create version file if missing
- [[ ! -f $VERSION_FILE ]] && echo 0 > $VERSION_FILE
- #get installed version
- while read line
- do
- INSTALLED_VERSION=$line
- done < $VERSION_FILE
- # start update if old or no tor-browser is installed
- if [[ "$INSTALLED_VERSION" == "$VERSION" ]] && [[ $update != 1 ]]; then
- cd $INSTALL_DIRECTORY && './start-tor-browser'
- else
- echo "$0: Your version in $DIRECTORY is outdated or you do not have installed $NAME yet." >> $LOG_FILE
- update
- # fire up
- $NAME
- fi
Advertisement
Add Comment
Please, Sign In to add comment