Advertisement
Guest User

ss-libev-upgrade.sh v0.2

a guest
May 15th, 2016
331
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.15 KB | None | 0 0
  1. #! /bin/bash
  2. # $author: twfcc@twitter
  3. # $PROG: ss-libev-upgrade.sh
  4. # $description: check newer version of ss-libev from github
  5. # $usage: $0
  6. # works on debian base os
  7. # target os: debian 7/8, ubuntu 14.04/15.04
  8. # this script is part of ss-libev-install.sh for upgrade
  9. # Public domain use as your own risk!
  10.  
  11. [ $(pwd) != "/root" ] && cd "$HOME"
  12. [ $UID -ne 0 ] && {
  13.         echo "Execute this script must be root." >&2 ;
  14.         exit 1 ;
  15. }
  16.  
  17. if ! which curl > /dev/null 2>&1 ; then
  18.         apt-get update && apt-get install curl -y
  19. fi
  20. ss_install_script="https://www.dropbox.com/s/mtare61xbd7brim/ss-libev-install.sh?dl=0"
  21. if ! which ss-server > /dev/null 2>&1 ; then
  22.         echo "shadowsocks-libev is not installed on system yet." >&2
  23.         echo "The install script download by input" >&2
  24.         echo "wget --no-check-certificate -O ss-libev-install.sh $ss_install_script" >&2
  25.         echo "chmod +x ./ss-libev-install.sh" >&2
  26.         echo "./ss-libev-install.sh -s" >&2
  27.         echo "or" >&2
  28.         echo "./ss-libev-install.sh -n" >&2
  29.         echo "-s install ss-libev on standard dedicated IP vps" >&2
  30.         echo "-n install ss-libev on nat share ipv4 vps." >&2
  31.         exit 1
  32. fi
  33.  
  34. github_url="https://github.com/shadowsocks/shadowsocks-libev/blob/master/configure"
  35. my_ss_ver=$(ss-server -h | sed -n '2p' | cut -d" " -f2)
  36. git_ver=$(curl -s "$github_url" | sed -n \
  37.         '/PACKAGE_VERSION=/{
  38.        N
  39.        H
  40.        s/<[^>][^>]*>//g
  41.        P
  42.        }' | grep -oE '[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}')
  43.  
  44. if [ "$my_ss_ver" != "$git_ver" ] ; then
  45.         flag="upgrade"
  46. else
  47.         flag="up-to-date"
  48. fi
  49.  
  50. case "$flag" in
  51.         upgrade) my_ss_deb=$(ls | grep 'shadowsocks-libev..*\.deb')
  52.                  if [ -n "$my_ss_deb" ] ; then
  53.                         mkdir ss-build_"$my_ss_ver"
  54.                         mv -f shadowsocks-libev*.deb ss-build_"$my_ss_ver" 2> /dev/null
  55.                         mv -f *shadowsocks-libev*.deb ss-build_"$my_ss_ver" 2> /dev/null
  56.                         mv -f shadowsocks-libev*.tar.gz ss-build_"$my_ss_ver" 2> /dev/null
  57.                  else
  58.                         :
  59.                  fi
  60.        
  61.          [ -d shadowsocks-libev ] && rm -rf shadowsocks-libev
  62.                  if git clone https://github.com/shadowsocks/shadowsocks-libev.git
  63.                         then
  64.                                 cd shadowsocks-libev
  65.                                 dpkg-buildpackage -us -uc -i
  66.                                 cd ..
  67.                                 dpkg -i shadowsocks-libev*.deb
  68.                                 ret=$?
  69.                         else
  70.                                 echo "Upgrade ss-libev failed" >&2
  71.                                 exit 1
  72.                  fi
  73.                  if [ $ret -eq 0 ] ; then
  74.                         /etc/init.d/shadowsocks-libev restart
  75.                         echo "Shadowsocks-libev upgraded."
  76.                  else
  77.                         echo "Upgrade shadowsocks-libev failed." >&2
  78.                         exit 1
  79.                  fi
  80.                  ;;
  81.               *) echo "Current shadowsocks-libev is the newest version."
  82.                  ;;
  83. esac
  84. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement