refactor(nvim): install neovim straight from master

Nightly seems to be getting less and less up to date...
This commit is contained in:
Price Hiller 2023-06-24 22:20:43 -05:00
parent bb39f006a0
commit 90b47737ee
Signed by: Price
SSH Key Fingerprint: SHA256:Y4S9ZzYphRn1W1kbJerJFO6GGsfu9O70VaBSxJO7dF8
2 changed files with 23 additions and 53 deletions

View File

@ -1,2 +1,3 @@
---
# defaults file for nvim
nvim_git_url: https://github.com/neovim/neovim.git

View File

@ -24,7 +24,7 @@
ansible.builtin.shell: |
set pipefail
# yamllint disable-line rule:line-length
NVIM_HEAD_VER="$(git ls-remote --tags https://github.com/neovim/neovim.git nightly \
NVIM_HEAD_VER="$(git ls-remote --heads https://github.com/neovim/neovim.git master \
| awk '{ print $1 }' \
| head -c 9)"
echo $NVIM_HEAD_VER >&2
@ -38,64 +38,33 @@
nvim_install_needed: "{{ nvim_install_needed | default(true) }}"
when: nvim_installed.rc == 0 and nvim_remote_version.stdout | default() != nvim_installed_version.stdout | default()
- name: Install neovim for MacOS
community.general.homebrew:
name: neovim
state: head
when: ansible_facts.distribution == 'MacOSX'
- name: Handle neovim install for non-macos systems
when: ansible_facts.distribution != 'MacOSX' and nvim_install_needed is defined and nvim_install_needed is true
- name: Handle neovim install for Unix systems
# TODO: Actually limit the targetting of this to Unix systems
when: nvim_install_needed is defined and nvim_install_needed is true
block:
- name: Create working directory
ansible.builtin.tempfile:
state: directory
prefix: neovim-checkout-
register: nvim_work_dir
- name: Set nvim url
ansible.builtin.set_fact:
# yamllint disable-line rule:line-length
nvim_url: "{{ 'https://github.com/neovim/neovim/releases/download/nightly/nvim-' + nvim_platform | default('linux64') + '.tar.gz' }}"
- name: Checkout Neovim Master from Git
# noqa latest
ansible.builtin.git:
repo: "{{ nvim_git_url }}"
dest: "{{ nvim_work_dir.path }}"
force: true
update: true
- name: Set nvim archive variables
ansible.builtin.set_fact:
nvim_checksum: "{{ 'sha256:' + nvim_url + '.sha256sum' }}"
nvim_archive_dest: "{{ nvim_work_dir.path + '/nvim.tar.gz' }}"
nvim_unpacked_dest: "{{ nvim_work_dir.path + '/nvim-unpacked' }}"
- name: Build Neovim
community.general.make:
chdir: "{{ nvim_work_dir.path }}"
params:
NUM_THREADS: 8
CMAKE_BUILD_TYPE: Release
- name: Download neovim archive from releases
- name: Install Neovim
become: true
ansible.builtin.get_url:
url: "{{ nvim_url }}"
checksum: "{{ nvim_checksum }}"
dest: "{{ nvim_archive_dest }}"
mode: "0644"
- name: Create unpack directory
ansible.builtin.file:
state: directory
mode: "0644"
path: "{{ nvim_unpacked_dest }}"
- name: Extract neovim archive
become: true
ansible.builtin.unarchive:
src: "{{ nvim_archive_dest }}"
dest: "{{ nvim_unpacked_dest }}"
remote_src: true
when: nvim_install_needed is defined and nvim_install_needed is true
- name: Copy neovim files into place
become: true
# noqa command-instead-of-module
ansible.builtin.command:
argv:
- rsync
- -avPr
- "{{ nvim_unpacked_dest }}/nvim-{{ nvim_platform | default('linux64') }}/{{ item }}"
- "{{ nvim_sync_dest_dir | default('/usr/') }}"
changed_when: true
loop:
- bin
- lib
- share
community.general.make:
chdir: "{{ nvim_work_dir.path }}"
target: install