diff options
| author | Autumn <git@autumnfo.rest> | 2026-05-07 08:06:14 +0100 |
|---|---|---|
| committer | Autumn <git@autumnfo.rest> | 2026-05-07 08:06:14 +0100 |
| commit | ddb65a9e6d687eb1af42ad06998d8b5c0746e790 (patch) | |
| tree | db6d2beeda75dd47f61b76d880005d064f9ba044 | |
| parent | 130c8d8cff0c74418803b25af83687406db00be9 (diff) | |
| -rw-r--r-- | index.nu | 23 | ||||
| -rw-r--r-- | src/bootstrap.nu | 14 | ||||
| -rw-r--r-- | src/versions.nu | 25 |
3 files changed, 62 insertions, 0 deletions
@@ -3,6 +3,11 @@ # # +# ~~~ imports +use "src/bootstrap.nu" * +use "src/versions.nu" * + +# # ~~~ main command # The Node Version Manager @@ -11,3 +16,21 @@ export def "nunvm" []: nothing -> nothing { help nunvm } + +# +# ~~~ list node versions + +# List versions of NodeJS +export def "nunvm list" [ + --local # List locally-installed versions of NodeJS +]: nothing -> list<string> { + + bootstrap + + if ($local) { + versions list --local | sort -r + } else { + versions list | sort -r + } + +} diff --git a/src/bootstrap.nu b/src/bootstrap.nu new file mode 100644 index 0000000..0137759 --- /dev/null +++ b/src/bootstrap.nu @@ -0,0 +1,14 @@ +# +# ~~~ bootstraps nunvm +# + +# +# ~~~ main bootstrap function +export def main []: nothing -> nothing { + + # nunvm dir + let NUNVM_DIR = $"($env.HOME)/.nunvm" # todo: allow customising this + + mkdir $NUNVM_DIR + mkdir $"($NUNVM_DIR)/versions" +} diff --git a/src/versions.nu b/src/versions.nu new file mode 100644 index 0000000..f5b73b4 --- /dev/null +++ b/src/versions.nu @@ -0,0 +1,25 @@ +# +# ~~~ nodejs version tools +# + +# +# ~~~ get list of versions +export def "versions list" [ + --local +]: nothing -> list<string> { + + mut versions = [] + + if ($local) { + + let NUNVM_DIR = $"($env.HOME)/.nunvm/versions" + $versions = (ls -s $NUNVM_DIR | get name) + + } else { + + $versions = (http get https://api.github.com/repos/nodejs/node/releases | sort-by -r tag_name | get tag_name) + + } + + return $versions +} |
