From 90d428be7fe7c72e8443871fa74651672909652e Mon Sep 17 00:00:00 2001 From: Colin Date: Sun, 26 May 2024 11:33:12 +0000 Subject: [PATCH] sane-vpn: allow `sane-vpn do` to work with no additional arguments --- pkgs/additional/sane-scripts/src/sane-vpn | 27 ++++++++++++++--------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/pkgs/additional/sane-scripts/src/sane-vpn b/pkgs/additional/sane-scripts/src/sane-vpn index 879c7f8d..1875b979 100755 --- a/pkgs/additional/sane-scripts/src/sane-vpn +++ b/pkgs/additional/sane-scripts/src/sane-vpn @@ -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 }