From 8254bfee9f07b939bb1a92a882263123cf47a19d Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Tue, 13 Aug 2024 20:40:20 +0200 Subject: [PATCH] Add nvm setup --- archlinux.yml | 1 + tasks/neovim.yml | 1 + tasks/nvm.yml | 35 +++++++++++++++++++++++++++++++++++ vars/archlinux.yml | 4 ++++ 4 files changed, 41 insertions(+) create mode 100644 tasks/nvm.yml diff --git a/archlinux.yml b/archlinux.yml index 8aefd7c..972f696 100644 --- a/archlinux.yml +++ b/archlinux.yml @@ -28,6 +28,7 @@ - name: setup python versions include_tasks: 'tasks/python.yml' loop: '{{ python_versions }}' + - import_tasks: 'tasks/nvm.yml' vars_files: - 'vars/main.yml' - 'vars/archlinux.yml' diff --git a/tasks/neovim.yml b/tasks/neovim.yml index 1e13e3c..633db0a 100644 --- a/tasks/neovim.yml +++ b/tasks/neovim.yml @@ -171,6 +171,7 @@ neovim_installed_version: neovim_stats.stdout_lines[0] | regex_search('(v\d+\.\d+\.\d+)') when: neovim_stats.rc == 0 + # TODO: verify checksum - name: download neovim {{ neovim.version }} get_url: url: 'https://github.com/neovim/neovim/releases/download/{{ neovim.version }}/nvim-linux64.tar.gz' diff --git a/tasks/nvm.yml b/tasks/nvm.yml new file mode 100644 index 0000000..36e6ece --- /dev/null +++ b/tasks/nvm.yml @@ -0,0 +1,35 @@ +- name: create nvm install directory + file: + path: '{{ nvm.install_dir }}' + state: directory + +- name: register the current nvm version + shell: 'source {{ nvm.install_dir }}/nvm.sh && nvm --version' + register: nvm_stats + ignore_errors: true + +- name: parse the current nvm version + set_fact: + nvm_installed_version: nvm_stats.stdout + when: nvm_stats.rc == 0 + +- name: download nvm {{ nvm.version }} + get_url: + url: 'https://raw.githubusercontent.com/nvm-sh/nvm/{{ nvm.version }}/install.sh' + dest: '/tmp/nvm-{{ nvm.version }}-install.sh' + when: nvm_stats.rc > 0 or nvm_installed_version != nvm.version + register: nvm_download + +- name: install nvm {{ nvm.version }} + ansible.builtin.command: 'bash /tmp/nvm-{{ nvm.version }}-install.sh' + environment: + PROFILE: /dev/null + NVM_DIR: '{{ nvm.install_dir }}' + args: + creates: '{{ nvm.install_dir }}/nvm.sh' + +- name: ensure nvm gets loaded + lineinfile: + path: '{{ ansible_env.HOME }}/.bashrc.override' + line: > + [ -s "{{ nvm.install_dir }}/nvm.sh" ] && \. "{{ nvm.install_dir }}/nvm.sh" # This loads nvm diff --git a/vars/archlinux.yml b/vars/archlinux.yml index 3fae616..3888723 100644 --- a/vars/archlinux.yml +++ b/vars/archlinux.yml @@ -84,3 +84,7 @@ python_versions: - { version: 3.8.14, path: 'python3.8', binary: 'python3.8' } - { version: 3.7.14, path: 'python3.7', binary: 'python3.7' } - { version: 3.6.15, path: 'python3.6', binary: 'python3.6' } + +nvm: + install_dir: '{{ xdg_config_dir }}/nvm' + version: 'v0.40.0'