#!/bin/bash PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin:/sbin chkans=0 SERVERIP=$(ip a s eth0 | awk '/inet / {print$2}' | cut -d/ -f1) RTFILE=/usr/local/bin/rt home="/home/$SUDO_USER" installed() { hash $1 2>/dev/null } get_scripts() { local script_name=$1 local script_dest=$2 local no_err=1 local attempts=0 until [ $no_err = 0 ] do rm -f $script_name wget --no-check-certificate https://raw.githubusercontent.com/arakasi72/rtinst/master/$script_name no_err=$? attempts=$(( $attempts + 1 )) if [ $attempts = 20 ] then echo "There is a problem downloading the scripts. Please check your network or there may be an issue with the github website" echo "If the Github website is down, you can try again later" exit 1 fi done if ! [ -z "$script_dest" ] then mv -f $script_name $script_dest fi } if [ "$LOGNAME" != "root" && ! -z "$SUDO_USER" ] then echo "Must be run from your primary user, with sudo" exit 1 fi ask_version() { while true do echo "Select version to upgrade/downgrade to" echo "1. libtorrent 0.13.2/rtorrent 0.9.2" echo "2. libtorrent 0.13.3/rtorrent 0.9.3" echo "3. libtorrent 0.13.4/rtorrent 0.9.4" echo "4. Quit" read -p "Select an option " answer case $answer in [1] ) libvers="libtorrent-0.13.2" && rtvers="rtorrent-0.9.2" && return 0 ;; [2] ) libvers="libtorrent-0.13.3" && rtvers="rtorrent-0.9.3" && return 0 ;; [3] ) libvers="libtorrent-0.13.4" && rtvers="rtorrent-0.9.4" && return 0 ;; [4] ) exit ;; * ) echo "Enter 1-4";; esac done } confirm_answer() { while true do read -p "Sure you wish to install $libvers/$rtvers? " answer case $answer in [Yy]* ) chkans=1 && return 0 ;; [Nn]* ) return 0 ;; * ) echo "Enter y or n";; esac done } if ( installed rtorrent ) then echo "rtorrent detected" echo else echo "rtorrent NOT installed" echo "This script is for upgrading/downgrading only, not for initial install" exit 1 fi while [ $chkans = 0 ] do ask_version confirm_answer done echo echo "Installing $libvers/$rtvers" if ! [ -x $RTFILE ] then get_scripts rt /usr/local/bin/rt chmod 755 /usr/local/bin/rt fi crontab -u $SUDO_USER -l | perl -nle 's/^([^#@])/# $1/;print' | crontab -u $SUDO_USER rt stop mkdir $home/source cd $home/source svn co https://svn.code.sf.net/p/xmlrpc-c/code/stable xmlrpc curl http://libtorrent.rakshasa.no/downloads/$libvers.tar.gz | tar xz curl http://libtorrent.rakshasa.no/downloads/$rtvers.tar.gz | tar xz chown -R $SUDO_USER:$SUDO_USER source cd xmlrpc ./configure --prefix=/usr --enable-libxml2-backend --disable-libwww-client --disable-wininet-client --disable-abyss-server --disable-cgi-server make make install cd $home/source/$libvers ./autogen.sh ./configure --prefix=/usr make -j2 make install cd $home/source/$rtvers ./autogen.sh ./configure --prefix=/usr --with-xmlrpc-c make -j2 make install ldconfig cd $home sudo -u $SUDO_USER rt start crontab -u $SUDO_USER -l | perl -nle 's/^#\s*([0-9*])/$1/;print' | crontab -u $SUDO_USER echo echo "$libvers/$rtvers installed" echo echo "Confirm at https://$SERVERIP/rutorrent" echo echo "Your .rtorrent.rc file, and download, watch, and .session directories have not been altered in any way"