chiark / gitweb /
Ship new configuration and startup kit.
[tripe] / tripe-init.in
diff --git a/tripe-init.in b/tripe-init.in
new file mode 100755 (executable)
index 0000000..4d286aa
--- /dev/null
@@ -0,0 +1,65 @@
+#! /bin/sh
+#
+# tripe init script
+#   suitable for direct use in most SysV-style inits
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+bindir=@bindir@
+sbindir=@sbindir@
+
+set -e
+
+[ -f /etc/tripe.conf ] && . /etc/tripe.conf
+: ${TRIPEDIR=/var/lib/tripe}
+export TRIPEDIR
+
+: ${tripe=$sbindir/tripe}
+: ${tripectl=$bindir/tripectl}
+PATH=/usr/bin:/usr/sbin:/bin:/sbin:$bindir
+export PATH
+
+case "$1" in
+  start)
+    echo -n "Starting TrIPE VPN daemon:"
+    if $tripectl help >/dev/null 2>/dev/null; then
+      echo " already running"
+      exit 0
+    fi
+    $tripectl -D -f ${tripelog-tripe.log} -p $tripe -s \
+      ${addr+-S-b}$addr \
+      ${port+-S-p}${port} \
+      ${user+-S-u}${user} \
+      ${group+-S-g}${group} \
+      ${trace+-S-T}${trace} \
+      ${miscopts}
+    for i in 1 2 3 4 give-up; do
+      $tripectl help >/dev/null 2>/dev/null && break
+      sleep 1
+    done
+    if [ $i = give-up ]; then
+      echo " wouldn't start"
+      exit 1
+    fi
+    echo -n " tripe"
+    for i in $TRIPEDIR/peers/*; do
+      name=`basename $i`
+      $i
+      echo -n " $name"
+    done
+    echo " done"
+    ;;
+  stop)
+    echo -n "Stopping TrIPE VPN daemon:"
+    $tripectl quit
+    echo " done"
+    ;;
+  restart | force-reload)
+    sh $0 stop
+    sh $0 start
+    ;;
+  *)
+    echo >&2 "usage: $0 start|stop|restart|force-reload"
+    exit 1
+    ;;
+esac