@@ -4,7 +4,7 @@ set -euo pipefail
44REPO=" ${WHEROBOTS_CLI_REPO:- wherobots/ wbc-cli} "
55TAG=" ${WHEROBOTS_CLI_TAG:- latest-prerelease} "
66BINARY_NAME=" ${WHEROBOTS_CLI_BINARY:- wherobots} "
7- INSTALL_DIR=" ${INSTALL_DIR:-/ usr / local/ bin} "
7+ INSTALL_DIR=" ${INSTALL_DIR:- ${HOME} / . local/ bin} "
88SKIP_CHECKSUM=0
99
1010usage () {
2020Options:
2121 --repo <owner/name> GitHub repository (default: wherobots/wbc-cli)
2222 --tag <tag> Release tag (default: latest-prerelease)
23- --install-dir <path> Install directory (default: /usr/ local/bin)
23+ --install-dir <path> Install directory (default: ~/. local/bin)
2424 --binary-name <name> Binary name/asset prefix (default: wherobots)
2525 --skip-checksum Skip checksum verification
2626 -h, --help Show help
@@ -136,15 +136,26 @@ if [[ "$SKIP_CHECKSUM" -eq 0 ]]; then
136136fi
137137
138138TARGET=" ${INSTALL_DIR} /${BINARY_NAME} "
139- if [[ -d " $INSTALL_DIR " && -w " $INSTALL_DIR " ]]; then
139+
140+ # Ensure the install directory exists; create without sudo when possible.
141+ if [[ ! -d " $INSTALL_DIR " ]]; then
142+ if ! mkdir -m 0755 -p " $INSTALL_DIR " 2> /dev/null; then
143+ if command -v sudo > /dev/null 2>&1 ; then
144+ sudo mkdir -p " $INSTALL_DIR "
145+ else
146+ echo " Cannot create $INSTALL_DIR and sudo is unavailable." >&2
147+ exit 1
148+ fi
149+ fi
150+ fi
151+
152+ if [[ -w " $INSTALL_DIR " ]]; then
140153 install -m 0755 " $TMP_DIR /$ASSET " " $TARGET "
141154else
142155 if command -v sudo > /dev/null 2>&1 ; then
143- sudo mkdir -p " $INSTALL_DIR "
144156 sudo install -m 0755 " $TMP_DIR /$ASSET " " $TARGET "
145157 else
146158 echo " No write access to $INSTALL_DIR and sudo is unavailable." >&2
147- echo " Try: --install-dir \" $HOME /.local/bin\" " >&2
148159 exit 1
149160 fi
150161fi
0 commit comments