@@ -15,34 +15,54 @@ if ! command -v node >/dev/null 2>&1 || ! command -v npm >/dev/null 2>&1; then
|
15 | 15 | fi |
16 | 16 | fi |
17 | 17 | |
| 18 | +node_cmd="node" |
| 19 | +npm_cmd="npm" |
| 20 | +if command -v cygpath >/dev/null 2>&1; then |
| 21 | +if command -v node.exe >/dev/null 2>&1; then |
| 22 | + node_cmd="node.exe" |
| 23 | +fi |
| 24 | +if command -v npm.cmd >/dev/null 2>&1; then |
| 25 | + npm_cmd="npm.cmd" |
| 26 | +elif command -v npm.exe >/dev/null 2>&1; then |
| 27 | + npm_cmd="npm.exe" |
| 28 | +fi |
| 29 | +fi |
| 30 | + |
18 | 31 | temp_root="${OPENCLAW_RELEASE_TSX_TOOL_ROOT:-${RUNNER_TEMP:-${TMPDIR:-/tmp}}}" |
19 | 32 | if command -v cygpath >/dev/null 2>&1; then |
20 | 33 | temp_root="$(cygpath -u "${temp_root}")" |
21 | 34 | fi |
22 | 35 | |
23 | 36 | tool_dir="${OPENCLAW_RELEASE_TSX_TOOL_DIR:-${temp_root}/openclaw-release-tsx-${tsx_version}}" |
24 | 37 | loader_path="${tool_dir}/node_modules/tsx/dist/loader.mjs" |
| 38 | +npm_tool_dir="${tool_dir}" |
| 39 | +if command -v cygpath >/dev/null 2>&1; then |
| 40 | + npm_tool_dir="$(cygpath -w "${tool_dir}")" |
| 41 | +fi |
25 | 42 | |
26 | | -command -v node >/dev/null 2>&1 || { |
| 43 | +command -v "${node_cmd}" >/dev/null 2>&1 || { |
27 | 44 | echo "node is required to run cross-OS release checks." >&2 |
28 | 45 | exit 127 |
29 | 46 | } |
30 | | -command -v npm >/dev/null 2>&1 || { |
| 47 | +command -v "${npm_cmd}" >/dev/null 2>&1 || { |
31 | 48 | echo "npm is required to install the cross-OS release-check loader." >&2 |
32 | 49 | exit 127 |
33 | 50 | } |
34 | 51 | |
35 | 52 | if [[ ! -f "${loader_path}" ]]; then |
36 | 53 | mkdir -p "${tool_dir}" |
37 | | - npm install --prefix "${tool_dir}" --no-save --no-package-lock "tsx@${tsx_version}" >/dev/null |
| 54 | +if ! "${npm_cmd}" install --prefix "${npm_tool_dir}" --no-save --no-package-lock "tsx@${tsx_version}" >/dev/null; then |
| 55 | +echo "failed to install cross-OS release-check loader with ${npm_cmd}." >&2 |
| 56 | +exit 127 |
| 57 | +fi |
38 | 58 | fi |
39 | 59 | |
40 | 60 | loader_url="$( |
41 | | - node -e ' |
| 61 | + "${node_cmd}" -e ' |
42 | 62 | const { resolve } = require("node:path"); |
43 | 63 | const { pathToFileURL } = require("node:url"); |
44 | 64 | process.stdout.write(pathToFileURL(resolve(process.argv[1])).href); |
45 | 65 | ' "${loader_path}" |
46 | 66 | )" |
47 | 67 | |
48 | | -exec node --import "${loader_url}" "${script_path}" "$@" |
| 68 | +exec "${node_cmd}" --import "${loader_url}" "${script_path}" "$@" |