mirror of
https://github.com/hotwa/luci-app-openclaw.git
synced 2026-03-30 20:25:44 +00:00
69 lines
1.3 KiB
Bash
69 lines
1.3 KiB
Bash
#!/bin/sh
|
|
# Shared OpenClaw Node.js runtime/version helpers.
|
|
|
|
oc_normalize_node_version() {
|
|
local version="${1:-}"
|
|
local old_ifs
|
|
|
|
[ -n "$version" ] || return 1
|
|
case "$version" in
|
|
v*) version="${version#v}" ;;
|
|
esac
|
|
case "$version" in
|
|
''|*[!0-9.]*) return 1 ;;
|
|
esac
|
|
|
|
old_ifs="$IFS"
|
|
IFS=.
|
|
set -- $version
|
|
IFS="$old_ifs"
|
|
|
|
[ "$#" -eq 3 ] || return 1
|
|
for part in "$1" "$2" "$3"; do
|
|
case "$part" in
|
|
''|*[!0-9]*) return 1 ;;
|
|
esac
|
|
done
|
|
|
|
printf '%s.%s.%s\n' "$1" "$2" "$3"
|
|
}
|
|
|
|
oc_node_version_ge() {
|
|
local lhs rhs
|
|
local old_ifs
|
|
local lhs_major lhs_minor lhs_patch
|
|
local rhs_major rhs_minor rhs_patch
|
|
|
|
lhs=$(oc_normalize_node_version "${1:-}") || return 1
|
|
rhs=$(oc_normalize_node_version "${2:-}") || return 1
|
|
|
|
old_ifs="$IFS"
|
|
IFS=.
|
|
set -- $lhs
|
|
lhs_major="$1"
|
|
lhs_minor="$2"
|
|
lhs_patch="$3"
|
|
set -- $rhs
|
|
rhs_major="$1"
|
|
rhs_minor="$2"
|
|
rhs_patch="$3"
|
|
IFS="$old_ifs"
|
|
|
|
[ "$lhs_major" -gt "$rhs_major" ] && return 0
|
|
[ "$lhs_major" -lt "$rhs_major" ] && return 1
|
|
[ "$lhs_minor" -gt "$rhs_minor" ] && return 0
|
|
[ "$lhs_minor" -lt "$rhs_minor" ] && return 1
|
|
[ "$lhs_patch" -ge "$rhs_patch" ]
|
|
}
|
|
|
|
oc_read_node_version() {
|
|
local node_bin="${1:-}"
|
|
local version
|
|
|
|
[ -n "$node_bin" ] || return 1
|
|
[ -x "$node_bin" ] || return 1
|
|
|
|
version=$("$node_bin" --version 2>/dev/null) || return 1
|
|
oc_normalize_node_version "$version"
|
|
}
|