# vim: set filetype=yaml.ansible : # ## Package: ansible_ls ## Description: language server for ansible yaml ## Version: latest ## Methods: [source, system] ## Helpers: npm --- - name: Set ansible_ls default facts # {{{ ansible.builtin.set_fact: ansible_ls: methods: default: [system, source] pkgname: default: ansible-language-server - name: Finalise ansible_ls default facts ansible.builtin.set_fact: ansible_ls: methods: "{{ ansible_ls.methods[os_family] | default(ansible_ls.methods.default) }}" pkgname: "{{ ansible_ls.pkgname[os_family] | default(ansible_ls.pkgname.default) }}" npm_pkg: name: '@ansible/ansible-language-server' global: true version: "{{ ansible_ls_version | default('latest') }}" pkg_deps: - nodejs # }}} - name: Configure ansible_ls when: - "'ansible_ls' not in __configured" block: - name: Set ansible_ls install method when: - ansible_ls_imethod is undefined ansible.builtin.set_fact: ansible_ls_imethod: "{{ imethod if imethod in ansible_ls.methods else ansible_ls.methods[0] }}" - name: Configure ansible_ls system install when: - ansible_ls_imethod == 'system' block: - name: Queue ansible_ls system install ansible.builtin.set_fact: pkg_sys: "{{ pkg_sys + [ansible_ls.pkgname] }}" ansible_ls_install: "{{ ansible_ls_imethod }}={{ ansible_ls.pkgname }}" - name: Configure ansible_ls source install when: - ansible_ls_imethod == 'source' block: - name: Load required installation dependencies loop: "{{ ansible_ls.pkg_deps }}" loop_control: loop_var: dep ansible.builtin.include_tasks: "pkgs/{{ dep }}.yml" - name: Append ansible ls to pkg_npm ansible.builtin.set_fact: pkg_npm: "{{ pkg_npm + [ansible_ls.npm_pkg] }}" - name: Finalise ansible_ls source install ansible.builtin.set_fact: ansible_ls_install: "{{ ansible_ls_imethod }}={{ ansible_ls.npm_pkg }}" - name: Finalise ansible_ls configuration ansible.builtin.set_fact: __configured: "{{ __configured | combine( { 'ansible_ls': ansible_ls_install } ) }}"