mirror of
https://github.com/pivpn/pivpn.git
synced 2024-12-18 19:00:15 +00:00
123 lines
3 KiB
Bash
Executable file
123 lines
3 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Must be root to use this tool
|
|
if [ $EUID -ne 0 ];then
|
|
if dpkg-query -s sudo &> /dev/null; then
|
|
export SUDO="sudo"
|
|
else
|
|
echo "::: Please install sudo or run this as root."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
scriptdir="/opt/pivpn"
|
|
vpn="wireguard"
|
|
|
|
makeConf(){
|
|
shift
|
|
$SUDO ${scriptdir}/${vpn}/makeCONF.sh "$@"
|
|
exit "$?"
|
|
}
|
|
|
|
listConnected(){
|
|
shift
|
|
$SUDO ${scriptdir}/${vpn}/clientSTAT.sh "$@"
|
|
exit "$?"
|
|
}
|
|
|
|
debug(){
|
|
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 "$?"
|
|
}
|
|
|
|
listClients(){
|
|
$SUDO ${scriptdir}/${vpn}/listCONF.sh
|
|
exit "$?"
|
|
}
|
|
|
|
showQrcode(){
|
|
shift
|
|
$SUDO ${scriptdir}/${vpn}/qrcodeCONF.sh "$@"
|
|
exit "$?"
|
|
}
|
|
|
|
removeClient(){
|
|
shift
|
|
$SUDO ${scriptdir}/${vpn}/removeCONF.sh "$@"
|
|
exit "$?"
|
|
}
|
|
|
|
disableClient(){
|
|
shift
|
|
$SUDO ${scriptdir}/${vpn}/disableCONF.sh "$@"
|
|
exit "$?"
|
|
}
|
|
|
|
enableClient(){
|
|
shift
|
|
$SUDO ${scriptdir}/${vpn}/enableCONF.sh "$@"
|
|
exit "$?"
|
|
}
|
|
|
|
uninstallServer(){
|
|
$SUDO ${scriptdir}/uninstall.sh "${vpn}"
|
|
exit "$?"
|
|
}
|
|
|
|
updateScripts(){
|
|
shift
|
|
$SUDO ${scriptdir}/update.sh "$@"
|
|
exit "$?"
|
|
}
|
|
|
|
backup(){
|
|
$SUDO ${scriptdir}/backup.sh "${vpn}"
|
|
exit "$?"
|
|
}
|
|
|
|
showHelp(){
|
|
echo "::: Control all PiVPN specific functions!"
|
|
echo ":::"
|
|
echo "::: Usage: pivpn <command> [option]"
|
|
echo ":::"
|
|
echo "::: Commands:"
|
|
echo "::: -a, add Create a client conf profile"
|
|
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 clients"
|
|
echo "::: -qr, qrcode Show the qrcode of a client for use with the mobile app"
|
|
echo "::: -r, remove Remove a client"
|
|
echo "::: -off, off Disable a user"
|
|
echo "::: -on, on Enable a user"
|
|
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 VPN configs and user profiles"
|
|
exit 0
|
|
}
|
|
|
|
if [ $# = 0 ]; then
|
|
showHelp
|
|
fi
|
|
|
|
# Handle redirecting to specific functions based on arguments
|
|
case "$1" in
|
|
"-a" | "add" ) makeConf "$@";;
|
|
"-c" | "clients" ) listConnected "$@";;
|
|
"-d" | "debug" ) debug;;
|
|
"-l" | "list" ) listClients;;
|
|
"-qr" | "qrcode" ) showQrcode "$@";;
|
|
"-r" | "remove" ) removeClient "$@";;
|
|
"-off" | "off" ) disableClient "$@";;
|
|
"-on" | "on" ) enableClient "$@";;
|
|
"-h" | "help" ) showHelp;;
|
|
"-u" | "uninstall" ) uninstallServer;;
|
|
"-up" | "update" ) updateScripts "$@" ;;
|
|
"-bk" | "backup" ) backup ;;
|
|
* ) showHelp;;
|
|
esac
|