#!/bin/bash # Must be root to use this tool if [[ ! $EUID -eq 0 ]];then if [[ $(dpkg-query -s sudo) ]];then export SUDO="sudo" else echo "::: Please install sudo or run this as root." exit 1 fi fi scriptDir="/opt/pivpn" vpn="openvpn" function makeOVPNFunc { shift $SUDO ${scriptDir}/${vpn}/makeOVPN.sh "$@" exit "$?" } function listClientsFunc { shift $SUDO ${scriptDir}/${vpn}/clientStat.sh "$@" exit "$?" } function listOVPNFunc { $SUDO ${scriptDir}/${vpn}/listOVPN.sh exit "$?" } function debugFunc { echo "::: Generating Debug Output" $SUDO ${scriptDir}/${vpn}/pivpnDebug.sh | tee /tmp/debug.log echo "::: " echo "::: Debug output completed above." echo "::: Copy saved to /tmp/debug.log" echo "::: " exit "$?" } function removeOVPNFunc { shift $SUDO ${scriptDir}/${vpn}/removeOVPN.sh "$@" exit "$?" } function uninstallFunc { $SUDO ${scriptDir}/uninstall.sh "${vpn}" exit "$?" } function update { shift $SUDO ${scriptDir}/update.sh "$@" exit "$?" } function backup { $SUDO ${scriptDir}/backup.sh "${vpn}" exit "$?" } function helpFunc { echo "::: Control all PiVPN specific functions!" echo ":::" echo "::: Usage: pivpn <command> [option]" echo ":::" echo "::: Commands:" echo "::: -a, add [nopass] Create a client ovpn profile, optional nopass" echo "::: -c, clients List any connected clients to the server" echo "::: -d, debug Start a debugging session if having trouble" echo "::: -l, list List all valid and revoked certificates" echo "::: -r, revoke Revoke a client ovpn profile" echo "::: -h, help Show this help dialog" echo "::: -u, uninstall Uninstall PiVPN from your system!" echo "::: -up, update Updates PiVPN Scripts" echo "::: -bk, backup Backup Openvpn and ovpns dir" exit 0 } if [[ $# = 0 ]]; then helpFunc fi # Handle redirecting to specific functions based on arguments case "$1" in "-a" | "add" ) makeOVPNFunc "$@";; "-c" | "clients" ) listClientsFunc "$@";; "-d" | "debug" ) debugFunc;; "-l" | "list" ) listOVPNFunc;; "-r" | "revoke" ) removeOVPNFunc "$@";; "-h" | "help" ) helpFunc;; "-u" | "uninstall" ) uninstallFunc;; "-up"| "update" ) update "$@" ;; "-bk"| "backup" ) backup;; * ) helpFunc;; esac