Hemifield's picture
download
raw
1.79 kB
#!/usr/bin/env bash
set -euo pipefail
require_nonempty_file() {
test -s "$1" || {
echo "missing file path=$1" >&2
exit 1
}
}
require_dir() {
test -d "$1" || {
echo "missing directory path=$1" >&2
exit 1
}
}
runtime_root="$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)"
runtime_manifest="$runtime_root/manifest.json"
node_path="$runtime_root/bin/node"
node_repl_path="$runtime_root/bin/node_repl"
node_modules="$runtime_root/lib/node_modules"
node_bin_dir="$(dirname "$node_path")"
require_nonempty_file "$runtime_manifest"
require_nonempty_file "$node_path"
require_nonempty_file "$node_repl_path"
require_dir "$node_modules/@oai/sky"
for node_launcher in corepack npm npx; do
require_nonempty_file "$node_bin_dir/$node_launcher"
done
for node_package_manager in corepack npm; do
require_dir "$node_modules/$node_package_manager"
done
manifest_node_version="$(
"$node_path" --eval \
'const fs = require("node:fs"); process.stdout.write(JSON.parse(fs.readFileSync(process.argv[1], "utf8")).node_version);' \
"$runtime_manifest"
)"
if [ "$("$node_path" --version)" != "v${manifest_node_version}" ]; then
echo "node version mismatch node_path=$node_path manifest_node_version=$manifest_node_version" >&2
exit 1
fi
for node_launcher in corepack npm npx; do
"$node_bin_dir/$node_launcher" --version >/dev/null
done
validation_dir="$(mktemp -d)"
trap 'rm -rf "$validation_dir"' EXIT
ln -s "$node_modules" "$validation_dir/node_modules"
(
cd "$validation_dir"
"$node_path" --input-type=module --eval 'const imported = await import("@oai/sky"); if (!imported.sky) throw new Error("@oai/sky missing sky export");'
)
"$node_repl_path" --help >/dev/null
echo "validated node_path=$node_path node_repl_path=$node_repl_path node_modules=$node_modules"

Xet Storage Details

Size:
1.79 kB
·
Xet hash:
34701bdac78c6ce44900bf3f169bbbeeb97b758fc27300e43c49e7bc7a8d8d7f

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.