From 6a4a2f7eef7f466292648523daf56653428b4faf Mon Sep 17 00:00:00 2001 From: Michael Wolf Date: Sat, 25 Oct 2025 14:18:08 -0600 Subject: [PATCH] Add cmd wrapper script --- cmd | 19 +++++++++++++++++++ cmd.d/list | 9 +++++++++ cmd.d/pnpm | 7 +++++++ cmd.d/sync | 17 +++++++++++++++++ framework/shims/node | 13 +++++++++++++ framework/shims/node.common | 21 +++++++++++++++++++++ framework/shims/pnpm | 13 +++++++++++++ 7 files changed, 99 insertions(+) create mode 100755 cmd create mode 100755 cmd.d/list create mode 100755 cmd.d/pnpm create mode 100644 cmd.d/sync create mode 100755 framework/shims/node create mode 100644 framework/shims/node.common create mode 100755 framework/shims/pnpm diff --git a/cmd b/cmd new file mode 100755 index 0000000..58a13d9 --- /dev/null +++ b/cmd @@ -0,0 +1,19 @@ +#!/bin/bash + +# This file belongs to the framework. You are not expected to modify it. + +# FIXME: Obviously this file isn't nearly robust enough. Make it so. + +set -eu + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +subcmd="$1" + +# echo "$subcmd" + +#exit 3 + +shift + +exec "$DIR"/cmd.d/"$subcmd" "$@" diff --git a/cmd.d/list b/cmd.d/list new file mode 100755 index 0000000..74c5a42 --- /dev/null +++ b/cmd.d/list @@ -0,0 +1,9 @@ +#!/bin/bash + +set -eu + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +cd "$DIR" + +ls . \ No newline at end of file diff --git a/cmd.d/pnpm b/cmd.d/pnpm new file mode 100755 index 0000000..05bc6da --- /dev/null +++ b/cmd.d/pnpm @@ -0,0 +1,7 @@ +#!/bin/bash + +set -eu + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +"$DIR"/../framework/shims/pnpm "$@" \ No newline at end of file diff --git a/cmd.d/sync b/cmd.d/sync new file mode 100644 index 0000000..2cdbc53 --- /dev/null +++ b/cmd.d/sync @@ -0,0 +1,17 @@ +#!/bin/bash + +set -eu + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# figure out the platform we're on + +# source ../framework/versions +# [eventually: check for it in user's cache dir +# download $nodejs_version +# verify its checksum against $nodejs_checksum + + + + +cd $DIR/../framework/node \ No newline at end of file diff --git a/framework/shims/node b/framework/shims/node new file mode 100755 index 0000000..083ab35 --- /dev/null +++ b/framework/shims/node @@ -0,0 +1,13 @@ +#!/bin/bash + +set -eu + +export DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +source "$DIR/../versions" + +node_bin="$DIR/../../$nodejs_bin_dir/node" + +exec "$node_bin" "$@" + + diff --git a/framework/shims/node.common b/framework/shims/node.common new file mode 100644 index 0000000..3d4922b --- /dev/null +++ b/framework/shims/node.common @@ -0,0 +1,21 @@ +# FIXME this shouldn't be hardcoded here of course + +nodejs_binary_dir="$DIR/../binaries/node-v22.15.1-linux-x64/bin" + +# This might be too restrictive. Or not restrictive enough. +PATH="$nodejs_binary_dir":/bin:/usr/bin + + +project_root="$DIR/../.." + +node_dir="$project_root/$nodejs_binary_dir" + +export NPM_CONFIG_PREFIX="$node_dir/npm" +export NPM_CONFIG_CACHE="$node_dir/cache" +export NPM_CONFIG_TMP="$node_dir/tmp" +export NODE_PATH="$node_dir/node_modules" + +echo $NPM_CONFIG_PREFIX +echo $NPM_CONFIG_CACHE +echo $NPM_CONFIG_TMP +echo $NODE_PATH diff --git a/framework/shims/pnpm b/framework/shims/pnpm new file mode 100755 index 0000000..3aa9376 --- /dev/null +++ b/framework/shims/pnpm @@ -0,0 +1,13 @@ +#!/bin/bash + +set -eu + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +source "$DIR"/node.common + +# "$DIR"/../.nodejs-config/node_modules/.bin/pnpm "$@" + +echo pnpm file: "$DIR"/../shims/pnpm + +exec "$DIR"/../binaries/pnpm "$@"