From ddb65a9e6d687eb1af42ad06998d8b5c0746e790 Mon Sep 17 00:00:00 2001 From: Autumn Date: Thu, 7 May 2026 08:06:14 +0100 Subject: [nunvm/list] added ability to list versions --- index.nu | 23 +++++++++++++++++++++++ src/bootstrap.nu | 14 ++++++++++++++ src/versions.nu | 25 +++++++++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 src/bootstrap.nu create mode 100644 src/versions.nu diff --git a/index.nu b/index.nu index 5084b78..fb8d6a7 100644 --- a/index.nu +++ b/index.nu @@ -2,6 +2,11 @@ # ~~~ nushell node version manager # +# +# ~~~ imports +use "src/bootstrap.nu" * +use "src/versions.nu" * + # # ~~~ main command @@ -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 { + + 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 { + + 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 +} -- cgit v1.3