#!/bin/bash ###Updates pivpn scripts (Not PiVPN) ###Main Vars pivpnrepo="https://github.com/pivpn/pivpn.git" pivpnlocalpath="/etc/.pivpn" pivpnscripts="/opt/pivpn/scripts" bashcompletiondir="/etc/bash_completion.d/pivpn" ###Functions ##Updates scripts updatepivpnscripts(){ ##We don't know what sort of changes users have made. ##Lets remove first /etc/.pivpn dir then clone it back again echo "going do update PiVPN Scripts" if [[ -d $pivpnlocalpath ]]; then sudo rm -rf $pivpnlocalpath cloneandupdate else cloneandupdate fi echo "PiVPN Scripts have been updated" } ##Updates scripts using test branch updatefromtest(){ ##We don't know what sort of changes users have made. ##Lets remove first /etc/.pivpn dir then clone it back again echo "PiVPN Scripts updating from test branch" if [[ -d /etc/.pivpn ]]; then rm -rf /etc/.pivpn cloneupdttest else cloneupdttest fi echo "PiVPN Scripts updated have been updated from test branch" } ##Clone and copy pivpn scripts to /op/ cloneandupdate(){ sudo git clone $pivpnrepo $pivpnlocalpath sudo cp -r $pivpnlocalpath/scripts $pivpnscripts sudo cp $pivpnlocalpath/scripts/bash-completion $bashcompletiondir } ##same as cloneandupdate() but from test branch ##and falls back to master branch again after updating cloneupdttest(){ sudo git clone $pivpnrepo $pivpnlocalpath sudo git -C $pivpnlocalpath checkout test sudo git -C $pivpnlocalpath pull origin test sudo cp -r $pivpnlocalpath/scripts $pivpnscripts sudo cp $pivpnlocalpath/scripts/bash-completion $bashcompletiondir sudo git -C $pivpnlocalpath checkout master } scriptusage(){ echo -e "Updates pivpn scripts,\n Usage: pivpn update | updates from master branch pivpn update -t or --test | updates from test branch" } ## SCRIPT if [[ $# -eq 0 ]]; then updatepivpnscripts else while true; do case "$1" in -t | --test | test ) updatefromtest exit 0 ;; -h | --help | help ) scriptusage exit 0 ;; * ) updatepivpnscripts exit 0 ;; esac done fi