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 "$@"