summaryrefslogtreecommitdiff
path: root/scripts/sandbox_command.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/sandbox_command.sh')
-rwxr-xr-xscripts/sandbox_command.sh12
1 files changed, 10 insertions, 2 deletions
diff --git a/scripts/sandbox_command.sh b/scripts/sandbox_command.sh
index 325722f5..468a4834 100755
--- a/scripts/sandbox_command.sh
+++ b/scripts/sandbox_command.sh
@@ -35,8 +35,16 @@ shift $((OPTIND - 1))
# note it can be string or boolean, and if missing `npx json` will return empty string
USER_SETTINGS_FILE="$HOME/.gemini/settings.json"
if [ -z "${GEMINI_SANDBOX:-}" ] && [ -f "$USER_SETTINGS_FILE" ]; then
- USER_SANDBOX_SETTING=$(sed -e 's/\/\/.*//' -e 's/\/\*.*\*\///g' -e '/^[[:space:]]*\/\//d' "$USER_SETTINGS_FILE" | npx json 'sandbox')
- if [ -n "$USER_SANDBOX_SETTING" ]; then
+ # Check if jq is available (more reliable than npx json)
+ if command -v jq &>/dev/null; then
+ USER_SANDBOX_SETTING=$(jq -r '.sandbox // empty' "$USER_SETTINGS_FILE" 2>/dev/null || echo "")
+ else
+ # Fallback to npx json with error handling
+ USER_SANDBOX_SETTING=$(sed -e 's/\/\/.*//' -e 's/\/\*.*\*\///g' -e '/^[[:space:]]*\/\//d' "$USER_SETTINGS_FILE" | npx json 'sandbox' 2>/dev/null || echo "")
+ fi
+
+ # Avoid setting GEMINI_SANDBOX to complex objects
+ if [ -n "$USER_SANDBOX_SETTING" ] && [[ ! "$USER_SANDBOX_SETTING" =~ ^\{.*\}$ ]]; then
GEMINI_SANDBOX=$USER_SANDBOX_SETTING
fi
fi