#!/bin/bash

######################################################################
#
#  Copyright (c) 2015 arakasi72 (https://github.com/arakasi72)
#
#  --> Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
#
######################################################################

PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin:/sbin

newvers=$(curl -s https://raw.githubusercontent.com/Novik/ruTorrent/master/js/webui.js | grep -m 1 version: | cut -d \" -f2)
oldvers=$(grep -m 1 version: /var/www/rutorrent/js/webui.js | cut -d \" -f2)

ruflag=0

ask_option() {
 while true
    do
      echo "1. Restore rutorrent_old"
      echo "2. Upgrade to latest version"
      read -p "Select 1 or 2: " answer
      case $answer in [1]* ) return 0 ;;
                      [2]* ) return 1 ;;
      esac
    done
}

check_user() {
while true
  do
    read -p "Do you wish to continue? " answer
    case $answer in [Yy]* ) return 0 ;;
                    [Nn]* ) return 1 ;;
                        * ) echo "Enter y or n";;
    esac
  done
}

#check user is root or sudo
if [ "$(id -u)" != "0" ]; then
  echo "Must be run from root or using sudo" && exit 1
fi

#check rutorrent folder exists
if ! [ -d '/var/www/rutorrent' ]; then
echo 'Could not find /var/www/rutorrent, exiting script'
exit
fi

#check versions
if [ '$newvers' = '$oldvers' ]; then
  echo "You have the latest version: "$newvers
else
  echo "Installed version: "$oldvers
  echo "   Latest version: "$newvers
fi

if ! ( check_user ); then
  exit
fi

#check to see if rutorrent_old exists, offer restore or upgrade options
if [ -d $HOME'/rutorrent_old' ];then
echo 'Detected '$HOME'/rutorrent_old'
  if ( ask_option ); then
    echo "Restoring Old version of rutorrent"
    echo "WARNING: The current rutorrent will be overwitten by older backup"
    ruflag=1
    if ( check_user ); then
      echo "Restoring"
      rm -r /var/www/rutorrent
      mv -f $HOME/rutorrent_old /var/www/rutorrent
      echo "Setting permissions, Starting services"
      chown -R www-data:www-data /var/www
      chmod -R 755 /var/www/rutorrent
      echo "Done"
    else
      exit
    fi
  else
    echo "Rutorrent will be upgraded"
    echo "WARNING: rutorrent_old will be deleted"
	echo "If you wish to retain this older version you should exit this script, and rename or move it"
    if ( check_user ); then
      ruflag=0
    else
      exit
    fi
  fi
fi

if [ $ruflag = 0 ]; then

  if [ -d $HOME'/rutorrent_old' ]; then
    rm -r $HOME/rutorrent_old
	echo "rutorrent_old has been deleted"
  fi

  echo
  echo 'Installing version '$newvers' of rutorrent'
  echo 'Your existing rutorrent folder will be moved to '$HOME'/rutorrent_old'
  echo
  echo 'If you are not happy with the upgrade you can restore the old version, by rerunning this script'
  echo

  mv -f /var/www/rutorrent $HOME/rutorrent_old

  echo "Installing Rutorrent "$newvers
  git clone https://github.com/Novik/ruTorrent.git /var/www/rutorrent  >> /dev/null 2>&1
  git clone https://github.com/autodl-community/autodl-rutorrent.git /var/www/rutorrent/plugins/autodl-irssi  >> /dev/null 2>&1

  rm -r /var/www/rutorrent/conf  >> /dev/null 2>&1
  cp -r $HOME/rutorrent_old/conf /var/www/rutorrent/conf  >> /dev/null 2>&1
  rm -r /var/www/rutorrent/share >> /dev/null 2>&1
  cp -r $HOME/rutorrent_old/share /var/www/rutorrent/share >> /dev/null 2>&1
  echo "Setting permissions, Starting services"
  chown -R www-data:www-data /var/www
  chmod -R 755 /var/www/rutorrent
fi
