diff options
| author | euer <root@euer.krebsco.de> | 2012-12-28 00:36:32 +0100 | 
|---|---|---|
| committer | euer <root@euer.krebsco.de> | 2012-12-28 00:36:32 +0100 | 
| commit | b684671e4e5d729c423e43ea9333aec5012b28f4 (patch) | |
| tree | 046f04f837e94c9ae846926f8920252bd582c9f8 /retiolum/scripts/tinc_setup | |
| parent | 08f2f080155387e436d3dc25d8a235a79a54ad69 (diff) | |
| parent | d1c0f2ea597d4f043d9c4e7134c7a8f6bcbe9260 (diff) | |
Merge branch 'master' of github.com:krebscode/painload
Diffstat (limited to 'retiolum/scripts/tinc_setup')
| -rwxr-xr-x | retiolum/scripts/tinc_setup/new_install.sh | 51 | 
1 files changed, 27 insertions, 24 deletions
| diff --git a/retiolum/scripts/tinc_setup/new_install.sh b/retiolum/scripts/tinc_setup/new_install.sh index 1227912e..90de1511 100755 --- a/retiolum/scripts/tinc_setup/new_install.sh +++ b/retiolum/scripts/tinc_setup/new_install.sh @@ -6,7 +6,7 @@ if test "${nosudo-false}" != true -a `id -u` != 0; then    exec sudo -E "$0" "$@"    exit 23 # go to hell  fi - +set -eu  #  SUBNET4=${SUBNET4:-10.243}  SUBNET6=${SUBNET6:-42} @@ -17,7 +17,8 @@ HOSTN=${HOSTN:-$SYSHOSTN}  NETNAME=${NETNAME:-retiolum}  MASK4=${MASK4:-16}  MASK6=${MASK6:-16} -URL=${URL:-euer.krebsco.de/retiolum/hosts.tar.gz} +URL=${URL:-http://euer.krebsco.de/retiolum/hosts.tar.gz} +SURL=${SURL:-http://euer.krebsco.de/retiolum/supernodes.tar.gz}  IRCCHANNEL=${IRCCHANNEL:-"#krebsco"}  IRCSERVER=${IRCSERVER:-"irc.freenode.net"} @@ -28,8 +29,8 @@ OS=${OS:-0}  IP4=${IP4:-0}  IP6=${IP6:-0} -RAND4=0 -RAND6=0 +RAND4=1 +RAND6=1  usage()  { @@ -49,7 +50,7 @@ Options:   -t \$DIR    Choose another Temporary directory, default is /tmp/tinc-install-fu   -o \$HOST   Choose another Hostname, default is your system hostname   -n \$NET    Choose another tincd netname,this also specifies the path to your tinc config, default is retiolum - -u \$URL    specify another hostsfiles.tar.gz url, default is euer.krebsco.de/retiolum/hosts.tar.gz + -u \$URL    specify another hostsfiles.tar.gz url, default is http://euer.krebsco.de/retiolum/hosts.tar.gz   -l \$OS     specify an OS, numeric parameter.0=Automatic 1=Linux 2=Android, disables automatic OS-finding, default is 0   -r \$ADDR   give the node an reachable remote address, ipv4 or dns  EOF @@ -58,9 +59,8 @@ EOF  #convert hostmask to subnetmask only version 4  host2subnet()  { -    NEEDDOTSINSUB=$(expr 3 - $(echo $SUBNET4 | sed 's/[0-9]*//g')) +    NEEDDOTSINSUB=$(expr 3 - $( echo $SUBNET4 | tr -C -d . | wc -c))      FULLSUBNET=$(echo $SUBNET4$(eval "printf '.0'%.0s {1..${#NEEDDOTSINSUB}}"s)) -      result=$(($(($((1 << $1)) - 1)) << $((32 - $1))))      byte=""      for i in {0..2}; do @@ -95,7 +95,7 @@ check_ip_valid6()  #check if ip is taken function  check_ip_taken()  { -    if grep -q -E "$1(#|/)" $TEMPDIR/hosts/* ;then +    if grep -q -r -E "$1(#|/)" $TEMPDIR/hosts/ ;then          return 1      else          return 0 @@ -121,12 +121,15 @@ get_hostname()  #os autodetection  find_os()  { -    if grep -qe 'Linux' /etc/*release 2>/dev/null; then +    if grep -qe 'Linux' /etc/*release 2>/dev/null || grep -qe 'Linux' /etc/issue 2>/dev/null; then          OS=1 -    elif which getprop&>/dev/null; then +    elif type getprop >/dev/null; then          OS=2      elif grep -qe 'OpenWrt' /etc/*release 2>/dev/null; then          OS=3 +    else +        echo "Cannot determine your operating system, falling back to Linux" +        OS=1      fi  } @@ -149,13 +152,13 @@ if [ $OS -eq 0 ]; then  fi  #check if everything is installed -if ! which awk&>/dev/null; then +if ! type awk >/dev/null; then      echo "Please install awk"      exit 1  fi -if ! which curl&>/dev/null; then -    if ! which wget&>/dev/null; then +if ! type curl >/dev/null; then +    if ! type wget >/dev/null; then          echo "Please install curl or wget"          exit 1      else @@ -243,17 +246,17 @@ if [ $OS -eq 2 ]; then          exit 1      else          TINCBIN=/data/data/org.poirsouille.tinc_gui/files/tincd -        if [ $TINCDIR == 'auto' ]; then TINCDIR=/usr/local/etc/tinc ;fi -        if [ $TEMPDIR == 'auto' ]; then TEMPDIR=/data/secure/data ;fi +        if [ $TINCDIR = 'auto' ]; then TINCDIR=/usr/local/etc/tinc ;fi +        if [ $TEMPDIR = 'auto' ]; then TEMPDIR=/data/secure/data ;fi      fi  else -    if ! which tincd&>/dev/null; then +    if ! type tincd >/dev/null; then          echo "Please install tinc"          exit 1      else          TINCBIN=tincd -        if [ $TINCDIR == 'auto' ]; then TINCDIR=/etc/tinc ;fi -        if [ $TEMPDIR == 'auto' ]; then TEMPDIR=/tmp/tinc-install-fu ;fi +        if [ $TINCDIR = 'auto' ]; then TINCDIR=/etc/tinc ;fi +        if [ $TEMPDIR = 'auto' ]; then TEMPDIR=/tmp/tinc-install-fu ;fi      fi  fi @@ -267,7 +270,7 @@ fi  #get tinc-hostfiles  mkdir -p $TEMPDIR/hosts -$LOADER euer.krebsco.de/retiolum/hosts.tar.gz | tar zx -C $TEMPDIR/hosts/ +$LOADER $URL | tar zx -C $TEMPDIR/hosts/  #check for free ip  #version 4 @@ -311,12 +314,12 @@ cd $TINCDIR/$NETNAME  if [ $OS -eq 3 ]; then      mkdir hosts -    $LOADER http://euer.krebsco.de/retiolum/supernodes.tar.gz | tar xz -C hosts/ +    $LOADER $SURL | tar xz -C hosts/  else      mv $TEMPDIR/hosts ./  fi -rm -r $TEMPDIR +rm -r $TEMPDIR || echo "$TEMPDIR does not exist, skipping removal"  echo "Subnet = $IP4" > hosts/$HOSTN  echo "Subnet = $IP6" >> hosts/$HOSTN @@ -338,7 +341,7 @@ EOF  host2subnet $MASK4  #check if ip is installed -if which ip&>/dev/null; then +if type ip >/dev/null; then      echo 'dirname="`dirname "$0"`"' > tinc-up      echo '' >> tinc-up      echo 'conf=$dirname/tinc.conf' >> tinc-up @@ -367,7 +370,7 @@ else      echo '' >> tinc-up      echo "addr4=\$(sed -n \"s|^ *Subnet *= *\\($SUBNET4[.][^ ]*\\) *$|\\1|p\" \$host)" >> tinc-up      echo 'ifconfig $INTERFACE $addr4' >> tinc-up -    echo "route add -net $FULLSUBNET netmask $RETARDEDMASK dev $INTERFACE " >> tinc-up +    echo "route add -net $FULLSUBNET netmask $RETARDEDMASK dev \$INTERFACE " >> tinc-up  fi  #fix permissions @@ -375,7 +378,7 @@ chmod +x tinc-up  chown -R root:root .  #generate keys with tinc -if which tincctl&>/dev/null; then +if type tincctl >/dev/null; then      yes | tincctl -n $NETNAME generate-keys      cat rsa_key.pub >> hosts/$HOSTN  else | 
