Skip to content

Commit eb316f5

Browse files
nsheapsclaude
andcommitted
fix: embed version at release time for correct --version output
Previously --version used git describe at runtime, which only works inside a git repo. When installed via Homebrew, it showed only the SHA. Now the version is embedded during CI release, and the script falls back to git describe for local development. Also fixed upgrade message to show brew instead of npm. Co-Authored-By: Claude Code (User Settings, in: ${CLAUDE_PROJECT_DIR}) <noreply@anthropic.com>
1 parent 6b2c733 commit eb316f5

2 files changed

Lines changed: 20 additions & 3 deletions

File tree

.github/workflows/release.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@ jobs:
5353
echo "released=false" >> "$GITHUB_OUTPUT"
5454
fi
5555
56+
- name: Embed version in script
57+
if: steps.release.outputs.released == 'true'
58+
run: |
59+
sed -i 's/__VERSION__/${{ steps.release.outputs.tag }}/' bin/git-wt
60+
5661
- name: Create GitHub release
5762
if: steps.release.outputs.released == 'true'
5863
run: |

bin/git-wt

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,18 @@
1919

2020
set -euo pipefail
2121

22+
# Version is replaced at release time by CI. For local dev, falls back to git describe.
23+
GIT_WT_VERSION="__VERSION__"
24+
25+
# Get version: use embedded version if set, otherwise fall back to git describe for local dev
26+
get_version() {
27+
if [[ "$GIT_WT_VERSION" != __"VERSION"__ ]]; then
28+
echo "$GIT_WT_VERSION"
29+
else
30+
git describe --tags --always 2>/dev/null || echo 'dev'
31+
fi
32+
}
33+
2234
SCAN_DIR="${HOME}/src"
2335
TARGET_BRANCH=""
2436
UPDATE_CHECK_FILE="/tmp/git-wt-update-check-$$"
@@ -52,7 +64,7 @@ check_for_updates() {
5264
}
5365

5466
# Start background update check
55-
CURRENT_VERSION=$(git describe --tags --always 2>/dev/null || echo 'dev')
67+
CURRENT_VERSION=$(get_version)
5668
check_for_updates "$CURRENT_VERSION" &
5769
UPDATE_CHECK_PID=$!
5870

@@ -71,7 +83,7 @@ show_update_notification() {
7183
local new_version="${update_info#UPDATE_AVAILABLE=}"
7284
echo ""
7385
gum style --foreground 214 "A new release of git-wt is available: ${CURRENT_VERSION#v}$new_version"
74-
echo "To upgrade, run: npm update -g git-wt"
86+
echo "To upgrade, run: brew upgrade git-wt"
7587
fi
7688
fi
7789
}
@@ -86,7 +98,7 @@ while [[ $# -gt 0 ]]; do
8698
case "$1" in
8799
--scan-dir) SCAN_DIR="$2"; shift 2 ;;
88100
-h|--help) show_help ;;
89-
-v|--version) echo "git-wt $(git describe --tags --always 2>/dev/null || echo 'dev')"; exit 0 ;;
101+
-v|--version) echo "git-wt $(get_version)"; exit 0 ;;
90102
-*) echo "Unknown option: $1" >&2; show_help ;;
91103
*) TARGET_BRANCH="$1"; shift ;;
92104
esac

0 commit comments

Comments
 (0)