diff options
Diffstat (limited to 'install.sh')
-rwxr-xr-x | install.sh | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..ed1d309 --- /dev/null +++ b/install.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +set -euvo pipefail + +PIDFILE="/var/run/tailscaled.pid" + +__error() { + echo "$@" >&2 + exit 1 +} + +if [[ $# -lt 1 ]] ; then + __error "usage: $0 <init-file>" +fi + +init_file="$1" + +base_dir=$(dirname $0) +backup_dir="$base_dir/backup" + +if [[ -e "$PIDFILE" ]] ; then + sudo start-stop-daemon -K -p $PIDFILE || true +fi + +__backup_if_exist() { + backup_dir=$1 + shift + mkdir -p $backup_dir + for f in $@ ; do + if [[ -e $f ]] ; then + cp -r $f $backup_dir/ + fi + done +} +__backup_if_exist $backup_dir /usr/local/bin/tailscale /usr/local/sbin/tailscaled /usr/local/etc/init.d/$init_file + +sudo cp $base_dir/tailscale /usr/local/bin/tailscale +sudo cp $base_dir/tailscaled /usr/local/sbin/tailscaled +sudo cp $base_dir/$init_file /usr/local/etc/init.d/$init_file +sudo chmod +x /usr/local/bin/tailscale +sudo chmod +x /usr/local/sbin/tailscaled +sudo chmod +x /usr/local/etc/init.d/$init_file + +sudo /usr/local/etc/init.d/$init_file |