--- - name: Install | Read the installed client version ansible.builtin.slurp: src: "{{ obsidian_headless_npm_prefix }}/lib/node_modules/obsidian-headless/package.json" register: _obh_pkg failed_when: false - name: Install | Decide whether an install is needed ansible.builtin.set_fact: _obh_needs_install: >- {{ _obh_pkg.content is not defined or (_obh_pkg.content | b64decode | from_json).version != obsidian_headless_version }} - name: Install | Install the pinned client as the service user ansible.builtin.command: argv: - "{{ obsidian_headless_node_bin_dir }}/npm" - install - --global - --prefix - "{{ obsidian_headless_npm_prefix }}" - --no-fund - --no-audit - "obsidian-headless@{{ obsidian_headless_version }}" become: true become_user: "{{ obsidian_headless_user }}" environment: HOME: "{{ obsidian_headless_home }}" PATH: "{{ obsidian_headless_node_bin_dir }}:/usr/bin:/bin" when: _obh_needs_install | bool changed_when: true notify: restart obsidian sync - name: Install | Link ob onto the default PATH ansible.builtin.file: src: "{{ obsidian_headless_npm_prefix }}/bin/ob" dest: "{{ obsidian_headless_link_dir }}/ob" state: link force: true