Pārlūkot izejas kodu

Install inadyn from source

Bob Mottram 10 gadus atpakaļ
vecāks
revīzija
2fd7ee4067
1 mainītis faili ar 157 papildinājumiem un 14 dzēšanām
  1. 157
    14
      src/freedombone

+ 157
- 14
src/freedombone Parādīt failu

@@ -6233,6 +6233,7 @@ function add_ddns_domain {
6233 6233
   fi
6234 6234
   chmod 600 /etc/inadyn.conf
6235 6235
   service inadyn restart
6236
+  systemctl daemon-reload
6236 6237
 
6237 6238
   # clear the arguments
6238 6239
   CURRENT_DDNS_DOMAIN=
@@ -8325,24 +8326,166 @@ function install_dynamicdns {
8325 8326
   if grep -Fxq "install_dynamicdns" $COMPLETION_FILE; then
8326 8327
       return
8327 8328
   fi
8328
-  apt-get -y install inadyn curl
8329 8329
 
8330
-  if [ ! -f /etc/inadyn.conf ]; then
8331
-      echo 'Unable to find inadyn configuration file /etc/inadyn.conf'
8332
-      exit 57894
8333
-  fi
8330
+  # Here we compile from source because the current package
8331
+  # doesn't support https, which clould result in passwords
8332
+  # being leaked
8334 8333
 
8335
-  sed -i "s/# bind eth.*/# bind eth0/g" /etc/inadyn.conf
8334
+  cd $INSTALL_DIR
8335
+  apt-get -y install build-essential curl libgnutls28-dev automake1.11
8336
+  git clone https://github.com/troglobit/inadyn
8337
+  cd inadyn
8338
+  ./configure
8339
+  if [ ! "$?" = "0" ]; then
8340
+      exit 74890
8341
+  fi
8342
+  USE_OPENSSL=1 make
8343
+  if [ ! "$?" = "0" ]; then
8344
+      exit 74858
8345
+  fi
8346
+  make install
8347
+  if [ ! "$?" = "0" ]; then
8348
+      exit 3785
8349
+  fi
8336 8350
 
8337
-  # clear existing settings
8338
-  sed -i 's/system <provider>//g' /etc/inadyn.conf
8339
-  sed -i 's/# Your username//g' /etc/inadyn.conf
8340
-  sed -i 's/username <username>//g' /etc/inadyn.conf
8341
-  sed -i 's/# Your password//g' /etc/inadyn.conf
8342
-  sed -i 's/password <password>//g' /etc/inadyn.conf
8343
-  sed -i 's/# Your hostname. This option can appear multiple times//g' /etc/inadyn.conf
8344
-  sed -i 's/alias <hostname>//g' /etc/inadyn.conf
8351
+  # create a configuration file
8352
+  echo 'period         300' > /etc/inadyn.conf
8353
+  echo 'startup-delay  60' >> /etc/inadyn.conf
8354
+  echo 'cache-dir      /etc/inadyn' >> /etc/inadyn.conf
8355
+  chmod 600 /etc/inadyn.conf
8345 8356
 
8357
+  if [ ! -d /etc/inadyn ]; then
8358
+      mkdir /etc/inadyn
8359
+  fi
8360
+  
8361
+  # add an init script
8362
+  echo '#!/bin/sh' > /etc/init.d/inadyn
8363
+  echo '### BEGIN INIT INFO' >> /etc/init.d/inadyn
8364
+  echo '# Provides:          inadyn' >> /etc/init.d/inadyn
8365
+  echo '# Required-Start:    $network $local_fs $remote_fs $syslog' >> /etc/init.d/inadyn
8366
+  echo '# Required-Stop:     $network $local_fs $remote_fs $syslog' >> /etc/init.d/inadyn
8367
+  echo '# Default-Start:     2 3 4 5' >> /etc/init.d/inadyn
8368
+  echo '# Default-Stop:      0 1 6' >> /etc/init.d/inadyn
8369
+  echo '# Short-Description: Dynamic DNS client' >> /etc/init.d/inadyn
8370
+  echo '# Description:       Register an Internet name with your IP address' >> /etc/init.d/inadyn
8371
+  echo '### END INIT INFO' >> /etc/init.d/inadyn
8372
+  echo '' >> /etc/init.d/inadyn
8373
+  echo '# Author: Timur Birsh <taem@linukz.org>' >> /etc/init.d/inadyn
8374
+  echo '' >> /etc/init.d/inadyn
8375
+  echo 'PATH=/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/local/bin:/usr/bin' >> /etc/init.d/inadyn
8376
+  echo 'DESC="Dynamic DNS client"' >> /etc/init.d/inadyn
8377
+  echo 'NAME=inadyn' >> /etc/init.d/inadyn
8378
+  echo 'DAEMON=/usr/local/sbin/inadyn' >> /etc/init.d/inadyn
8379
+  echo 'CACHEDIR=/run/$NAME' >> /etc/init.d/inadyn
8380
+  echo 'PIDFILE=$CACHEDIR/$NAME.pid' >> /etc/init.d/inadyn
8381
+  echo 'SCRIPTNAME=/etc/init.d/$NAME' >> /etc/init.d/inadyn
8382
+  echo 'DEFAULT=/etc/default/$NAME' >> /etc/init.d/inadyn
8383
+  echo 'CONFIG=/etc/$NAME.conf' >> /etc/init.d/inadyn
8384
+  echo '' >> /etc/init.d/inadyn
8385
+  echo '[ -x $DAEMON ] || exit 0' >> /etc/init.d/inadyn
8386
+  echo '' >> /etc/init.d/inadyn
8387
+  echo '[ -r $DEFAULT ] && . $DEFAULT' >> /etc/init.d/inadyn
8388
+  echo '' >> /etc/init.d/inadyn
8389
+  echo '. /lib/lsb/init-functions' >> /etc/init.d/inadyn
8390
+  echo '' >> /etc/init.d/inadyn
8391
+  echo '# Set defaults values if no DEFAULT exist' >> /etc/init.d/inadyn
8392
+  echo 'RUN_DAEMON="yes"' >> /etc/init.d/inadyn
8393
+  echo 'USER=root' >> /etc/init.d/inadyn
8394
+  echo 'GROUP=root' >> /etc/init.d/inadyn
8395
+  echo '' >> /etc/init.d/inadyn
8396
+  echo 'DAEMON_ARGS="--pidfile $PIDFILE \' >> /etc/init.d/inadyn
8397
+  echo '             --config $CONFIG \' >> /etc/init.d/inadyn
8398
+  echo '             --background \' >> /etc/init.d/inadyn
8399
+  echo '             --drop-privs $USER:$GROUP"' >> /etc/init.d/inadyn
8400
+  echo '' >> /etc/init.d/inadyn
8401
+  echo 'create_cache_dir() {' >> /etc/init.d/inadyn
8402
+  echo '    # Create the cache empty dir if necessary' >> /etc/init.d/inadyn
8403
+  echo '    if [ ! -d $CACHEDIR ]; then' >> /etc/init.d/inadyn
8404
+  echo '        mkdir $CACHEDIR' >> /etc/init.d/inadyn
8405
+  echo '        chmod 0755 $CACHEDIR' >> /etc/init.d/inadyn
8406
+  echo '    chown $USER:$GROUP $CACHEDIR' >> /etc/init.d/inadyn
8407
+  echo '    fi' >> /etc/init.d/inadyn
8408
+  echo '}' >> /etc/init.d/inadyn
8409
+  echo '' >> /etc/init.d/inadyn
8410
+  echo 'do_start()' >> /etc/init.d/inadyn
8411
+  echo '{' >> /etc/init.d/inadyn
8412
+  echo '    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \' >> /etc/init.d/inadyn
8413
+  echo '        || return 1' >> /etc/init.d/inadyn
8414
+  echo '    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \' >> /etc/init.d/inadyn
8415
+  echo '        $DAEMON_ARGS \' >> /etc/init.d/inadyn
8416
+  echo '        || return 2' >> /etc/init.d/inadyn
8417
+  echo '}' >> /etc/init.d/inadyn
8418
+  echo '' >> /etc/init.d/inadyn
8419
+  echo 'do_stop()' >> /etc/init.d/inadyn
8420
+  echo '{' >> /etc/init.d/inadyn
8421
+  echo '    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME' >> /etc/init.d/inadyn
8422
+  echo '    RETVAL="$?"' >> /etc/init.d/inadyn
8423
+  echo '    [ "$RETVAL" = 2 ] && return 2' >> /etc/init.d/inadyn
8424
+  echo '    rm -f $PIDFILE' >> /etc/init.d/inadyn
8425
+  echo '    return "$RETVAL"' >> /etc/init.d/inadyn
8426
+  echo '}' >> /etc/init.d/inadyn
8427
+  echo '' >> /etc/init.d/inadyn
8428
+  echo 'do_reload() {' >> /etc/init.d/inadyn
8429
+  echo '    start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME' >> /etc/init.d/inadyn
8430
+  echo '    return 0' >> /etc/init.d/inadyn
8431
+  echo '}' >> /etc/init.d/inadyn
8432
+  echo '' >> /etc/init.d/inadyn
8433
+  echo 'case "$1" in' >> /etc/init.d/inadyn
8434
+  echo '  start)' >> /etc/init.d/inadyn
8435
+  echo '    log_daemon_msg "Starting $DESC " "$NAME"' >> /etc/init.d/inadyn
8436
+  echo '    create_cache_dir' >> /etc/init.d/inadyn
8437
+  echo '    do_start' >> /etc/init.d/inadyn
8438
+  echo '    case "$?" in' >> /etc/init.d/inadyn
8439
+  echo '        0|1) log_end_msg 0 ;;' >> /etc/init.d/inadyn
8440
+  echo '        2) log_end_msg 1 ;;' >> /etc/init.d/inadyn
8441
+  echo '    esac' >> /etc/init.d/inadyn
8442
+  echo '  ;;' >> /etc/init.d/inadyn
8443
+  echo '  stop)' >> /etc/init.d/inadyn
8444
+  echo '    log_daemon_msg "Stopping $DESC" "$NAME"' >> /etc/init.d/inadyn
8445
+  echo '    do_stop' >> /etc/init.d/inadyn
8446
+  echo '    case "$?" in' >> /etc/init.d/inadyn
8447
+  echo '        0|1) log_end_msg 0 ;;' >> /etc/init.d/inadyn
8448
+  echo '        2) log_end_msg 1 ;;' >> /etc/init.d/inadyn
8449
+  echo '    esac' >> /etc/init.d/inadyn
8450
+  echo '    ;;' >> /etc/init.d/inadyn
8451
+  echo '  status)' >> /etc/init.d/inadyn
8452
+  echo '       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?' >> /etc/init.d/inadyn
8453
+  echo '       ;;' >> /etc/init.d/inadyn
8454
+  echo '  reload|force-reload)' >> /etc/init.d/inadyn
8455
+  echo '    log_daemon_msg "Reloading $DESC" "$NAME"' >> /etc/init.d/inadyn
8456
+  echo '    do_reload' >> /etc/init.d/inadyn
8457
+  echo '    log_end_msg $?' >> /etc/init.d/inadyn
8458
+  echo '    ;;' >> /etc/init.d/inadyn
8459
+  echo '  restart)' >> /etc/init.d/inadyn
8460
+  echo '    log_daemon_msg "Restarting $DESC" "$NAME"' >> /etc/init.d/inadyn
8461
+  echo '    do_stop' >> /etc/init.d/inadyn
8462
+  echo '    case "$?" in' >> /etc/init.d/inadyn
8463
+  echo '      0|1)' >> /etc/init.d/inadyn
8464
+  echo '        do_start' >> /etc/init.d/inadyn
8465
+  echo '        case "$?" in' >> /etc/init.d/inadyn
8466
+  echo '            0) log_end_msg 0 ;;' >> /etc/init.d/inadyn
8467
+  echo '            1) log_end_msg 1 ;; # Old process is still running' >> /etc/init.d/inadyn
8468
+  echo '            *) log_end_msg 1 ;; # Failed to start' >> /etc/init.d/inadyn
8469
+  echo '        esac' >> /etc/init.d/inadyn
8470
+  echo '        ;;' >> /etc/init.d/inadyn
8471
+  echo '      *)' >> /etc/init.d/inadyn
8472
+  echo '        # Failed to stop' >> /etc/init.d/inadyn
8473
+  echo '        log_end_msg 1' >> /etc/init.d/inadyn
8474
+  echo '        ;;' >> /etc/init.d/inadyn
8475
+  echo '    esac' >> /etc/init.d/inadyn
8476
+  echo '    ;;' >> /etc/init.d/inadyn
8477
+  echo '  *)' >> /etc/init.d/inadyn
8478
+  echo '    echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload|force-reload}" >&2' >> /etc/init.d/inadyn
8479
+  echo '    exit 3' >> /etc/init.d/inadyn
8480
+  echo '    ;;' >> /etc/init.d/inadyn
8481
+  echo 'esac' >> /etc/init.d/inadyn
8482
+  echo '' >> /etc/init.d/inadyn
8483
+  echo ':' >> /etc/init.d/inadyn
8484
+  chmod +x /etc/init.d/inadyn
8485
+  update-rc.d inadyn defaults
8486
+  service inadyn start
8487
+  systemctl daemon-reload
8488
+  
8346 8489
   echo 'install_dynamicdns' >> $COMPLETION_FILE
8347 8490
 }
8348 8491