Skip to content

Commit 877d1e1

Browse files
committed
fix: create system-wide symlink for openclaw binary to enable 'which openclaw' in non-login shells
1 parent eeb5381 commit 877d1e1

2 files changed

Lines changed: 56 additions & 0 deletions

File tree

hooks/install

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,27 @@ case "$INSTALL_METHOD" in
6565
[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\"
6666
npm install -g openclaw@${OPENCLAW_VERSION}
6767
"
68+
69+
# Make openclaw accessible system-wide for npm/pnpm
70+
if [ -d "/home/ubuntu/.nvm" ]; then
71+
local nvm_node_version
72+
# shellcheck disable=SC2012
73+
nvm_node_version="$(ls -1 /home/ubuntu/.nvm/versions/node | sort -V | tail -1)"
74+
if [ -f "/home/ubuntu/.nvm/versions/node/${nvm_node_version}/bin/openclaw" ]; then
75+
ln -sf "/home/ubuntu/.nvm/versions/node/${nvm_node_version}/bin/openclaw" /usr/local/bin/openclaw
76+
log_info "Created symlink for openclaw at /usr/local/bin/openclaw"
77+
fi
78+
fi
6879
;;
6980
bun)
7081
log_info "Installing OpenClaw via Bun (v${OPENCLAW_VERSION})"
7182
sudo -u ubuntu bash -l -c "bun install -g openclaw@${OPENCLAW_VERSION}"
83+
84+
# Make openclaw accessible system-wide for bun
85+
if [ -f "/home/ubuntu/.bun/bin/openclaw" ]; then
86+
ln -sf "/home/ubuntu/.bun/bin/openclaw" /usr/local/bin/openclaw
87+
log_info "Created symlink for openclaw at /usr/local/bin/openclaw"
88+
fi
7289
;;
7390
source)
7491
log_info "Installing OpenClaw from source"
@@ -81,6 +98,17 @@ case "$INSTALL_METHOD" in
8198
[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\"
8299
npm install -g pnpm && cd /home/ubuntu/openclaw && pnpm install && pnpm build
83100
"
101+
102+
# Make openclaw accessible system-wide for source install
103+
if [ -d "/home/ubuntu/.nvm" ]; then
104+
local nvm_node_version
105+
# shellcheck disable=SC2012
106+
nvm_node_version="$(ls -1 /home/ubuntu/.nvm/versions/node | sort -V | tail -1)"
107+
if [ -f "/home/ubuntu/.nvm/versions/node/${nvm_node_version}/bin/openclaw" ]; then
108+
ln -sf "/home/ubuntu/.nvm/versions/node/${nvm_node_version}/bin/openclaw" /usr/local/bin/openclaw
109+
log_info "Created symlink for openclaw at /usr/local/bin/openclaw"
110+
fi
111+
fi
84112
;;
85113
*)
86114
log_error "Unknown install method: $INSTALL_METHOD"

hooks/upgrade-charm

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,26 @@ if ! sudo -u ubuntu bash -l -c "command -v openclaw" >/dev/null 2>&1; then
3131
[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\"
3232
npm install -g openclaw@${OPENCLAW_VERSION}
3333
"
34+
35+
# Make openclaw accessible system-wide for npm/pnpm
36+
if [ -d "/home/ubuntu/.nvm" ]; then
37+
local nvm_node_version
38+
# shellcheck disable=SC2012
39+
nvm_node_version="$(ls -1 /home/ubuntu/.nvm/versions/node | sort -V | tail -1)"
40+
if [ -f "/home/ubuntu/.nvm/versions/node/${nvm_node_version}/bin/openclaw" ]; then
41+
ln -sf "/home/ubuntu/.nvm/versions/node/${nvm_node_version}/bin/openclaw" /usr/local/bin/openclaw
42+
log_info "Created symlink for openclaw at /usr/local/bin/openclaw"
43+
fi
44+
fi
3445
;;
3546
bun)
3647
sudo -u ubuntu bash -l -c "bun install -g openclaw@${OPENCLAW_VERSION}"
48+
49+
# Make openclaw accessible system-wide for bun
50+
if [ -f "/home/ubuntu/.bun/bin/openclaw" ]; then
51+
ln -sf "/home/ubuntu/.bun/bin/openclaw" /usr/local/bin/openclaw
52+
log_info "Created symlink for openclaw at /usr/local/bin/openclaw"
53+
fi
3754
;;
3855
source)
3956
if [ ! -d "/home/ubuntu/openclaw" ]; then
@@ -44,6 +61,17 @@ if ! sudo -u ubuntu bash -l -c "command -v openclaw" >/dev/null 2>&1; then
4461
[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\"
4562
cd /home/ubuntu/openclaw && git fetch && git checkout ${OPENCLAW_VERSION} && pnpm install && pnpm build
4663
"
64+
65+
# Make openclaw accessible system-wide for source install
66+
if [ -d "/home/ubuntu/.nvm" ]; then
67+
local nvm_node_version
68+
# shellcheck disable=SC2012
69+
nvm_node_version="$(ls -1 /home/ubuntu/.nvm/versions/node | sort -V | tail -1)"
70+
if [ -f "/home/ubuntu/.nvm/versions/node/${nvm_node_version}/bin/openclaw" ]; then
71+
ln -sf "/home/ubuntu/.nvm/versions/node/${nvm_node_version}/bin/openclaw" /usr/local/bin/openclaw
72+
log_info "Created symlink for openclaw at /usr/local/bin/openclaw"
73+
fi
74+
fi
4775
;;
4876
esac
4977
fi

0 commit comments

Comments
 (0)