diff --git a/bin/rclaude b/bin/rclaude index 3630083..1fdb747 100755 --- a/bin/rclaude +++ b/bin/rclaude @@ -164,9 +164,26 @@ cmd_resume() { # Dispatch # --------------------------------------------------------------------------- +cmd_version() { + # Resolve symlink → real script → repo root. + _self=$0 + while [ -L "$_self" ]; do _self=$(readlink "$_self"); done + _repo=$(cd "$(dirname "$_self")/.." 2>/dev/null && pwd) + if [ -d "$_repo/.git" ] && command -v git >/dev/null 2>&1; then + _sha=$(git -C "$_repo" rev-parse --short HEAD 2>/dev/null) + _dirty="" + [ -n "$(git -C "$_repo" status --porcelain 2>/dev/null)" ] && _dirty="-dirty" + _date=$(git -C "$_repo" log -1 --format=%cd --date=short HEAD 2>/dev/null) + printf 'rclaude (session-tools) %s%s %s %s\n' "$_sha" "$_dirty" "$_date" "$_repo" + else + printf 'rclaude (session-tools) %s\n' "$_repo" + fi +} + case ${1:-} in - list) shift; cmd_list "$@"; exit ;; - resume) shift; cmd_resume "$@"; exit ;; + list) shift; cmd_list "$@"; exit ;; + resume) shift; cmd_resume "$@"; exit ;; + -v|--version) cmd_version; exit ;; esac # ---------------------------------------------------------------------------