@@ -23,46 +23,57 @@ trap 'log "An error occurred. Exiting with status $?."' ERR
2323
2424log " Starting node setup (common)."
2525
26+ if [ -n " ${GOOSE_PATH_ROOT:- } " ]; then
27+ RESOLVED_GOOSE_CONFIG_DIR=" ${GOOSE_PATH_ROOT} /config"
28+ elif [ -n " ${GOOSE_CONFIG_DIR:- } " ]; then
29+ log " GOOSE_CONFIG_DIR is deprecated for desktop shims; prefer GOOSE_PATH_ROOT."
30+ RESOLVED_GOOSE_CONFIG_DIR=" ${GOOSE_CONFIG_DIR} "
31+ else
32+ RESOLVED_GOOSE_CONFIG_DIR=" ${HOME} /.config/goose"
33+ fi
34+ MCP_HERMIT_DIR=" ${RESOLVED_GOOSE_CONFIG_DIR} /mcp-hermit"
35+
2636# One-time cleanup for existing Linux users to fix locking issues
27- CLEANUP_MARKER=" ${HOME} /.config/goose /.mcp-hermit-cleanup-v1"
37+ CLEANUP_MARKER=" ${RESOLVED_GOOSE_CONFIG_DIR} /.mcp-hermit-cleanup-v1"
2838if [[ " $( uname -s) " == " Linux" ]] && [ ! -f " ${CLEANUP_MARKER} " ]; then
2939 log " Performing one-time cleanup of old mcp-hermit directory to fix locking issues."
30- if [ -d " ${HOME} /.config/goose/mcp-hermit " ]; then
31- rm -rf " ${HOME} /.config/goose/mcp-hermit "
40+ if [ -d " ${MCP_HERMIT_DIR} " ]; then
41+ rm -rf " ${MCP_HERMIT_DIR} "
3242 log " Removed old mcp-hermit directory."
3343 fi
44+ mkdir -p " ${RESOLVED_GOOSE_CONFIG_DIR} "
3445 touch " ${CLEANUP_MARKER} "
3546 log " Cleanup completed. Marker file created."
3647fi
3748
38- # Ensure ${HOME}/.config/goose/ mcp-hermit/bin exists
39- log " Creating directory ${HOME} /.config/goose/mcp-hermit /bin if it does not exist."
40- mkdir -p " ${HOME} /.config/goose/mcp-hermit /bin"
49+ # Ensure mcp-hermit/bin exists
50+ log " Creating directory ${MCP_HERMIT_DIR} /bin if it does not exist."
51+ mkdir -p " ${MCP_HERMIT_DIR} /bin"
4152
42- # Change to the ${HOME}/.config/goose/ mcp-hermit directory
43- log " Changing to directory ${HOME} /.config/goose/mcp-hermit ."
44- cd " ${HOME} /.config/goose/mcp-hermit "
53+ # Change to the mcp-hermit directory
54+ log " Changing to directory ${MCP_HERMIT_DIR} ."
55+ cd " ${MCP_HERMIT_DIR} "
4556
4657
4758# Check if hermit binary exists and download if not
48- if [ ! -f " ${HOME} /.config/goose/mcp-hermit /bin/hermit" ]; then
59+ if [ ! -f " ${MCP_HERMIT_DIR} /bin/hermit" ]; then
4960 log " Hermit binary not found. Downloading hermit binary."
5061 curl -fsSL " https://github.com/cashapp/hermit/releases/download/stable/hermit-$( uname -s | tr ' [:upper:]' ' [:lower:]' ) -$( uname -m | sed ' s/x86_64/amd64/' | sed ' s/aarch64/arm64/' ) .gz" \
51- | gzip -dc > " ${HOME} /.config/goose/mcp-hermit/ bin/hermit" && chmod +x " ${HOME} /.config/goose/mcp-hermit /bin/hermit"
62+ | gzip -dc > " ${MCP_HERMIT_DIR} / bin/hermit" && chmod +x " ${MCP_HERMIT_DIR} /bin/hermit"
5263 log " Hermit binary downloaded and made executable."
5364else
5465 log " Hermit binary already exists. Skipping download."
5566fi
5667
5768
5869log " setting hermit cache to be local for MCP servers"
59- mkdir -p " ${HOME} /.config/goose/mcp-hermit /cache"
60- export HERMIT_STATE_DIR=" ${HOME} /.config/goose/mcp-hermit /cache"
70+ mkdir -p " ${MCP_HERMIT_DIR} /cache"
71+ export HERMIT_STATE_DIR=" ${MCP_HERMIT_DIR} /cache"
6172
6273
6374# Update PATH
64- export PATH=" ${HOME} /.config/goose/mcp-hermit /bin:${PATH} "
65- log " Updated PATH to include ${HOME} /.config/goose/mcp-hermit /bin."
75+ export PATH=" ${MCP_HERMIT_DIR} /bin:${PATH} "
76+ log " Updated PATH to include ${MCP_HERMIT_DIR} /bin."
6677
6778
6879# Verify hermit installation
@@ -78,7 +89,7 @@ if [ ! -f "bin/activate-hermit" ]; then
7889 log " Creating temp dir with bin subdirectory for hermit copy to avoid self-update locks."
7990 HERMIT_TMP_DIR=" /tmp/hermit_tmp_$$ /bin"
8091 mkdir -p " ${HERMIT_TMP_DIR} "
81- cp " ${HOME} /.config/goose/mcp-hermit /bin/hermit" " ${HERMIT_TMP_DIR} /hermit"
92+ cp " ${MCP_HERMIT_DIR} /bin/hermit" " ${HERMIT_TMP_DIR} /hermit"
8293 chmod +x " ${HERMIT_TMP_DIR} /hermit"
8394 export PATH=" ${HERMIT_TMP_DIR} :${PATH} "
8495 HERMIT_CLEANUP_DIR=" /tmp/hermit_tmp_$$ "
@@ -124,10 +135,10 @@ if [ -n "${GOOSE_NPM_REGISTRY:-}" ] && curl -s --head --fail "${GOOSE_NPM_REGIST
124135 # Check if GOOSE_NPM_CERT is set and accessible
125136 if [ -n " ${GOOSE_NPM_CERT:- } " ] && curl -s --head --fail " ${GOOSE_NPM_CERT} " > /dev/null; then
126137 log " Downloading certificate from: ${GOOSE_NPM_CERT} "
127- curl -sSL -o " ${HOME} /.config/goose/mcp-hermit /cert.pem" " ${GOOSE_NPM_CERT} "
138+ curl -sSL -o " ${MCP_HERMIT_DIR} /cert.pem" " ${GOOSE_NPM_CERT} "
128139 if [ $? -eq 0 ]; then
129140 log " Certificate downloaded successfully."
130- export NODE_EXTRA_CA_CERTS=" ${HOME} /.config/goose/mcp-hermit /cert.pem"
141+ export NODE_EXTRA_CA_CERTS=" ${MCP_HERMIT_DIR} /cert.pem"
131142 else
132143 log " Unable to download the certificate. Skipping certificate setup."
133144 fi
0 commit comments