- name: Fetch nvm installation script ansible.builtin.get_url: url: https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh dest: /tmp/nvm_install.sh mode: '0755' tags: - node - name: Run nvm installation script ansible.builtin.command: /tmp/nvm_install.sh changed_when: true tags: - node - name: Enable nvm ansible.builtin.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