mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-30 04:36:04 +00:00
CLI: include commit hash in --version output (#39712)
* CLI: include commit hash in --version output * fix(version): harden commit SHA resolution and keep output consistent * CLI: keep install checks compatible with commit-tagged version output * fix(cli): include commit hash in root version fast path * test(cli): allow null commit-hash mocks * Installer: share version parser across install scripts * Installer: avoid sourcing helpers from stdin cwd * CLI: note commit-tagged version output * CLI: anchor commit hash resolution to module root * CLI: harden commit hash resolution * CLI: fix commit hash lookup edge cases * CLI: prefer live git metadata in dev builds * CLI: keep git lookup inside package root * Infra: tolerate invalid moduleUrl hints * CLI: cache baked commit metadata fallbacks * CLI: align changelog attribution with prep gate * CLI: restore changelog contributor credit --------- Co-authored-by: echoVic <echovic@163.com> Co-authored-by: echoVic <echoVic@users.noreply.github.com>
This commit is contained in:
@@ -2085,14 +2085,52 @@ run_bootstrap_onboarding_if_needed() {
|
||||
}
|
||||
}
|
||||
|
||||
load_install_version_helpers() {
|
||||
local source_path="${BASH_SOURCE[0]-}"
|
||||
local script_dir=""
|
||||
local helper_path=""
|
||||
if [[ -z "$source_path" || ! -f "$source_path" ]]; then
|
||||
return 0
|
||||
fi
|
||||
script_dir="$(cd "$(dirname "$source_path")" && pwd 2>/dev/null || true)"
|
||||
helper_path="${script_dir}/docker/install-sh-common/version-parse.sh"
|
||||
if [[ -n "$script_dir" && -r "$helper_path" ]]; then
|
||||
# shellcheck source=docker/install-sh-common/version-parse.sh
|
||||
source "$helper_path"
|
||||
fi
|
||||
}
|
||||
|
||||
load_install_version_helpers
|
||||
|
||||
if ! declare -F extract_openclaw_semver >/dev/null 2>&1; then
|
||||
# Inline fallback when version-parse.sh could not be sourced (for example, stdin install).
|
||||
extract_openclaw_semver() {
|
||||
local raw="${1:-}"
|
||||
local parsed=""
|
||||
parsed="$(
|
||||
printf '%s\n' "$raw" \
|
||||
| tr -d '\r' \
|
||||
| grep -Eo 'v?[0-9]+\.[0-9]+\.[0-9]+([.-][0-9A-Za-z]+(\.[0-9A-Za-z]+)*)?(\+[0-9A-Za-z.-]+)?' \
|
||||
| head -n 1 \
|
||||
|| true
|
||||
)"
|
||||
printf '%s' "${parsed#v}"
|
||||
}
|
||||
fi
|
||||
|
||||
resolve_openclaw_version() {
|
||||
local version=""
|
||||
local raw_version_output=""
|
||||
local claw="${OPENCLAW_BIN:-}"
|
||||
if [[ -z "$claw" ]] && command -v openclaw &> /dev/null; then
|
||||
claw="$(command -v openclaw)"
|
||||
fi
|
||||
if [[ -n "$claw" ]]; then
|
||||
version=$("$claw" --version 2>/dev/null | head -n 1 | tr -d '\r')
|
||||
raw_version_output=$("$claw" --version 2>/dev/null | head -n 1 | tr -d '\r')
|
||||
version="$(extract_openclaw_semver "$raw_version_output")"
|
||||
if [[ -z "$version" ]]; then
|
||||
version="$raw_version_output"
|
||||
fi
|
||||
fi
|
||||
if [[ -z "$version" ]]; then
|
||||
local npm_root=""
|
||||
|
||||
Reference in New Issue
Block a user