sane-vpn: allow sane-vpn do to work with no additional arguments

This commit is contained in:
Colin 2024-05-26 11:33:12 +00:00
parent 9d7b68eeb4
commit 90d428be7f

View File

@ -9,9 +9,9 @@ usageDescription() {
echo "however, systemd --user has poor support for capabilities, hence this here is a bespoke script instead of a service"
echo ""
echo "usage:"
echo "sane-vpn up REGION"
echo "sane-vpn down REGION"
echo "sane-vpn do REGION COMMAND [COMMAND ARGS ...]"
echo "sane-vpn up [REGION]"
echo "sane-vpn down [REGION]"
echo "sane-vpn do [REGION [COMMAND ...] ]"
echo "sane-vpn help"
}
@ -70,7 +70,7 @@ canonicalizeRegion() {
}
vpnToggle() {
verb="$1"
local verb="$1"
debug "vpnToggle with:"
debug " id='$id'"
@ -95,12 +95,17 @@ vpnDo() {
debug " name='$name'"
debug " addrV4='$addrV4'"
debug " dns='$dns'"
sanebox --sanebox-method pastaonly --sanebox-net-dev "$name" --sanebox-net-gateway "$addrV4" --sanebox-dns "$dns" "$@"
local cmd=("$@")
if [ ${#cmd} -eq 0 ]; then
cmd=(/bin/sh)
fi
debug "cmd: ${cmd[*]}"
sanebox --sanebox-method pastaonly --sanebox-net-dev "$name" --sanebox-net-gateway "$addrV4" --sanebox-dns "$dns" "${cmd[@]}"
}
usage() {
rc="$1"
msg="$2"
local rc="$1"
local msg="$2"
test -n "$msg" && echo "$msg"
@ -115,16 +120,16 @@ usage() {
}
parseCli() {
_oper="$1"
local oper="$1"
shift
region="$1"
shift
shift || true
getVpns
canonicalizeRegion
sourceVpn "$region"
case "$_oper" in
case $oper in
(up)
vpnToggle add
;;
@ -138,7 +143,7 @@ parseCli() {
usage 0
;;
(*)
usage 1 "invalid operation '$_oper'"
usage 1 "invalid operation '$oper'"
;;
esac
}