fix: vault.sh wrapper MSYS path bug on Windows Git Bash
Python open() can't read MSYS-style paths (/c/claudetools/...). Fix: try jq first (handles Unix paths cleanly on all platforms), fall back to Python with cygpath -m conversion to mixed Windows paths. Matches the same fix already applied to get-token.sh. Bug reported by Howard (HOWARD-HOME, 2026-04-21). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -22,13 +22,20 @@ if [[ ! -f "$IDENTITY_FILE" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Extract vault_path from identity.json using python (available on all platforms)
|
# Extract vault_path from identity.json — jq first, then Python with path conversion
|
||||||
VAULT_ROOT=""
|
VAULT_ROOT=""
|
||||||
for py in py python3 python; do
|
if command -v jq >/dev/null 2>&1; then
|
||||||
if command -v "$py" >/dev/null 2>&1; then
|
VAULT_ROOT=$(jq -r '.vault_path // empty' "$IDENTITY_FILE" 2>/dev/null)
|
||||||
VAULT_ROOT=$("$py" -c "import json,sys; d=json.load(open('$IDENTITY_FILE')); print(d.get('vault_path',''))" 2>/dev/null) && break
|
fi
|
||||||
fi
|
if [[ -z "$VAULT_ROOT" ]]; then
|
||||||
done
|
IDENTITY_FILE_FOR_PY="$IDENTITY_FILE"
|
||||||
|
command -v cygpath >/dev/null 2>&1 && IDENTITY_FILE_FOR_PY=$(cygpath -m "$IDENTITY_FILE")
|
||||||
|
for py in py python3 python; do
|
||||||
|
if command -v "$py" >/dev/null 2>&1; then
|
||||||
|
VAULT_ROOT=$("$py" -c "import json,sys; d=json.load(open(r'$IDENTITY_FILE_FOR_PY')); print(d.get('vault_path',''))" 2>/dev/null) && break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -z "$VAULT_ROOT" ]]; then
|
if [[ -z "$VAULT_ROOT" ]]; then
|
||||||
echo "[ERROR] vault_path not set in $IDENTITY_FILE" >&2
|
echo "[ERROR] vault_path not set in $IDENTITY_FILE" >&2
|
||||||
|
|||||||
Reference in New Issue
Block a user