diff options
author | Nikolaos Boutalas <nikolaos@boutalas.me> | 2023-08-07 11:51:08 +0300 |
---|---|---|
committer | Nikolaos Boutalas <nikolaos@boutalas.me> | 2023-08-07 11:54:27 +0300 |
commit | 803b8cd7919f6602432cf2f185ee7fc28ba4ed6b (patch) | |
tree | 133e9c3eceeca66f1cdd8a4b5d3eecdab93090e3 | |
parent | 072d1391328d09dc2163c86797148f4c8ec55364 (diff) |
Add node task
-rw-r--r-- | dotfiles/nvm/.nvmrc | 1 | ||||
-rw-r--r-- | local.yml | 1 | ||||
-rw-r--r-- | tasks/node.yml | 35 |
3 files changed, 37 insertions, 0 deletions
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 @@ -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 |