From 803b8cd7919f6602432cf2f185ee7fc28ba4ed6b Mon Sep 17 00:00:00 2001 From: Nikolaos Boutalas Date: Mon, 7 Aug 2023 11:51:08 +0300 Subject: Add node task --- dotfiles/nvm/.nvmrc | 1 + local.yml | 1 + tasks/node.yml | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 dotfiles/nvm/.nvmrc create mode 100644 tasks/node.yml diff --git a/dotfiles/nvm/.nvmrc b/dotfiles/nvm/.nvmrc new file mode 100644 index 0000000..64f5a0a --- /dev/null +++ b/dotfiles/nvm/.nvmrc @@ -0,0 +1 @@ +node diff --git a/local.yml b/local.yml index 148bb45..d9d458d 100644 --- a/local.yml +++ b/local.yml @@ -3,4 +3,5 @@ - include: tasks/dependencies.yml - include: tasks/zsh.yml - include: tasks/ssh.yml + - include: tasks/node.yml - include: tasks/dotfiles.yml diff --git a/tasks/node.yml b/tasks/node.yml new file mode 100644 index 0000000..39b5b07 --- /dev/null +++ b/tasks/node.yml @@ -0,0 +1,35 @@ +- name: Install nvm + shell: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash + args: + warn: false + tags: + - node + +- name: Enable nvm + lineinfile: + path: "~/.config/zsh/.zshrc" + line: | + export NVM_DIR=~/.nvm + [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" + autoload -U add-zsh-hook + load-nvmrc() { + local node_version="$(nvm version)" + local nvmrc_path="$(nvm_find_nvmrc)" + + if [ -n "$nvmrc_path" ]; then + local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") + + if [ "$nvmrc_node_version" = "N/A" ]; then + nvm install + elif [ "$nvmrc_node_version" != "$node_version" ]; then + nvm use + fi + elif [ "$node_version" != "$(nvm version default)" ]; then + echo "Reverting to nvm default version" + nvm use default + fi + } + add-zsh-hook chpwd load-nvmrc + load-nvmrc + tags: + - node -- cgit v1.2.3