From 33f8bc90c0a68e75a128f39e2210325244b5a679 Mon Sep 17 00:00:00 2001 From: OCram85 Date: Wed, 19 Jul 2023 12:52:26 +0200 Subject: [PATCH] Adds Volta as default version manager for NodeJs (#53) #### :book: Summary - Adds Volta - Using Volta as default method for installing global nodejs@lts version. #### :bookmark_tabs: Test Plan > :bulb: Select your test plan for the code changes. - [x] CI pipeline tests - [ ] Custom test - [ ] No test plan ##### Details / Justification #### :books: Additional Notes - fixes #50 Co-authored-by: OCram85 Reviewed-on: https://gitea.ocram85.com/CodeServer/arkanum/pulls/53 --- .vscode/dictionaries/project-words.txt | 1 + README.md | 3 ++- arkanum | 33 ++++++++++++++++++++++++-- arkanum-completion | 2 +- 4 files changed, 35 insertions(+), 4 deletions(-) diff --git a/.vscode/dictionaries/project-words.txt b/.vscode/dictionaries/project-words.txt index 2bafec8..dbf3ee8 100644 --- a/.vscode/dictionaries/project-words.txt +++ b/.vscode/dictionaries/project-words.txt @@ -22,3 +22,4 @@ srv tbd traefik tuanpham +volta diff --git a/README.md b/README.md index 9f826d4..5cfc6da 100644 --- a/README.md +++ b/README.md @@ -177,7 +177,8 @@ This helps reducing the image size. dotnet Installs latest LTS dotnet core sdk + runtime. gitea Installs gitea tools like the changelog generator. golang Installs golang 1.19.3. - nodejs Installs latest NodeJs LTS version. + nodejs Installs latest NodeJs LTS version using Volta. + volta Installs Volta as NodeJs version manager. powershell Installs latest PowerShell LTS version. --disable-motd Disables hint in new bash terminal. --install-extensions Installs predefined recommended extensions. diff --git a/arkanum b/arkanum index 5563540..96c7681 100755 --- a/arkanum +++ b/arkanum @@ -12,7 +12,8 @@ function showHelp() { dotnet Installs latest LTS dotnet core sdk + runtime. gitea Installs gitea tools like the changelog generator. golang Installs golang 1.19.3. - nodejs Installs latest NodeJs LTS version. + nodejs Installs latest NodeJs LTS version using Volta. + volta Installs Volta as NodeJS version manager. powershell Installs latest PowerShell LTS version. --disable-motd Disables hint in new bash terminal. --install-extensions Installs predefined recommended extensions. @@ -48,6 +49,14 @@ function sayE() { fi } +function sayW() { + if [[ -n "$2" ]]; then + echo -e "🧙 \e[33markanum\e[0m \e[34m[⚒️ $2]\e[0m: $1" 1>&2 + else + echo -e "🧙 \e[33markanum\e[0m: $1" 1>&2 + fi +} + function instDotNet() { say "Installing dotnet requirements..." "dotnet" sudo -E apt-get update > /dev/null @@ -107,6 +116,18 @@ function instNodeJs() { say "done." "NodeJs" } +function instNodeJS2() { + say "Installing NodeJS LTS via Volta..." "NodeJS" + volta install node@lts + say "done." "NodeJS" +} + +function instVolta() { + say "Installing Volta as NodeJS version manager..." "Volta" + curl -#fSl https://get.volta.sh | bash + say "done." "Volta" +} + function instPwsh() { say "Installing PowerShell requirements..." "PowerShell" sudo -E apt-get install --no-install-recommends -y \ @@ -211,7 +232,15 @@ function main() { elif [[ "$i" == "golang" ]]; then instGoLang elif [[ "$i" == "nodejs" ]]; then - instNodeJs + if [[ "$2" == "--legacy" ]]; then + sayW "Installing NodeJS with legacy function" "Arkanum" + instNodeJs + else + instVolta + instNodeJS2 + fi + elif [[ "$i" == "volta" ]]; then + instVolta elif [[ "$i" == "powershell" ]]; then instPwsh elif [[ "$i" == "gitea" ]]; then diff --git a/arkanum-completion b/arkanum-completion index 248e6da..fda3dcb 100644 --- a/arkanum-completion +++ b/arkanum-completion @@ -1,3 +1,3 @@ #!/bin/bash -complete -W "--disable-motd --install-extensions --reset-codesetting dotnet gitea golang nodejs powershell -h" arkanum +complete -W "--disable-motd --install-extensions --reset-codesetting dotnet gitea golang nodejs volta powershell -h" arkanum