From a46eae4b781f4d9540e612d9f2925be81bd7b134 Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Wed, 1 Apr 2026 04:42:33 -0500 Subject: [PATCH] Fix scriptExecString using bash syntax with sh interpreter scriptExecString and scriptExecUint used `sh -c` with bash-only syntax ([[ ]] and source). On systems where sh is dash/POSIX sh (e.g. Arch Linux), this produces errors like "sh: 1: [[: not found" which leaked into flag defaults, showing as: --addproxy string (default "sh: 1: [[: not found") Change sh -c to bash -c to match the other scriptExec* functions which already use bash -c. --- cmd/dmsgweb/commands/root.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/dmsgweb/commands/root.go b/cmd/dmsgweb/commands/root.go index 7e7c14ae..b036c2c8 100644 --- a/cmd/dmsgweb/commands/root.go +++ b/cmd/dmsgweb/commands/root.go @@ -98,7 +98,7 @@ func scriptExecString(s, envfile string) string { } return defaultvalue } - z, err := script.Exec(fmt.Sprintf(`sh -c 'SKYENV=%s ; if [[ $SKYENV != "" ]] && [[ -f $SKYENV ]] ; then source $SKYENV ; fi ; printf "%s"'`, envfile, s)).String() + z, err := script.Exec(fmt.Sprintf(`bash -c 'SKYENV=%s ; if [[ $SKYENV != "" ]] && [[ -f $SKYENV ]] ; then source $SKYENV ; fi ; printf "%s"'`, envfile, s)).String() if err == nil { return strings.TrimSpace(z) } @@ -239,7 +239,7 @@ func scriptExecInt(s, envfile string) int { } return 0 } - z, err := script.Exec(fmt.Sprintf(`sh -c 'SKYENV=%s ; if [[ $SKYENV != "" ]] && [[ -f $SKYENV ]] ; then source $SKYENV ; fi ; printf "%s"'`, envfile, s)).String() + z, err := script.Exec(fmt.Sprintf(`bash -c 'SKYENV=%s ; if [[ $SKYENV != "" ]] && [[ -f $SKYENV ]] ; then source $SKYENV ; fi ; printf "%s"'`, envfile, s)).String() if err == nil { if z == "" { return 0 @@ -279,7 +279,7 @@ func scriptExecUint(s, envfile string) uint { } return 0 } - z, err := script.Exec(fmt.Sprintf(`sh -c 'SKYENV=%s ; if [[ $SKYENV != "" ]] && [[ -f $SKYENV ]] ; then source $SKYENV ; fi ; printf "%s"'`, envfile, s)).String() + z, err := script.Exec(fmt.Sprintf(`bash -c 'SKYENV=%s ; if [[ $SKYENV != "" ]] && [[ -f $SKYENV ]] ; then source $SKYENV ; fi ; printf "%s"'`, envfile, s)).String() if err == nil { if z == "" { return 0