- name: Install PNPM and Git community.general.apk: name: - pnpm - git - name: Install tsx globally ansible.builtin.shell: pnpm install --global tsx register: pnpm_install_tsx changed_when: "'Already up to date' not in pnpm_install_tsx.stdout" environment: PNPM_HOME: "{{ ansible_facts.env.HOME }}/.local/share/pnpm" PATH: "{{ ansible_facts.env.PATH }}:{{ ansible_facts.env.HOME }}/.local/share/pnpm" - name: Checkout source code for latest etherpad release register: etherpad_src ansible.builtin.git: repo: https://github.com/ether/etherpad.git dest: "{{ src_dir }}/etherpad" depth: 1 version: master - name: Install etherpad settings register: etherpad_settings ansible.builtin.template: src: settings.json dest: "{{ src_dir }}/etherpad/settings.json" mode: "640" - name: Install etherpad dependencies register: etherpad_dependencies changed_when: "'Already up to date' not in etherpad_dependencies.stdout" ansible.builtin.command: chdir: "{{ src_dir }}/etherpad" cmd: pnpm install - name: Install etherpad service register: etherpad_service ansible.builtin.template: src: openrc/etherpad dest: /etc/init.d/etherpad mode: "755" - name: Restart etherpad service and configure to start on boot when: etherpad_src is changed or etherpad_service is changed or etherpad_settings is changed or etherpad_dependencies is changed ansible.builtin.service: name: etherpad enabled: true state: restarted - name: Start etherpad service and configure to start on boot when: not ( etherpad_src is changed or etherpad_settings is changed or etherpad_service is changed or etherpad_dependencies is changed ) ansible.builtin.service: name: etherpad enabled: true state: started - name: Install script to update etherpad ansible.builtin.template: src: update_etherpad dest: /usr/bin/update_etherpad mode: "755" - name: Install daily crontab to update etherpad ansible.builtin.cron: special_time: daily name: Update etherpad job: /usr/bin/update_etherpad