--- - name: Download atuin tags: always become: "{{ use_become }}" ansible.builtin.get_url: url: "{{ software_atuin_download_url }}" dest: "{{ software_atuin_download_dir }}" mode: "0600" - name: Create dir tags: always become: "{{ use_become }}" ansible.builtin.file: path: "{{ software_atuin_unpack_dir }}" mode: "0755" state: directory - name: Unpacking atuin tags: always become: "{{ use_become }}" ansible.builtin.unarchive: remote_src: true src: "{{ software_atuin_download_dir }}" dest: "{{ software_atuin_unpack_dir }}" - name: Ensure dir tags: always become: "{{ use_become }}" ansible.builtin.file: path: "{{ home }}/.local/bin" mode: "0755" owner: "{{ username }}" state: directory - name: Move bin tags: always become: "{{ use_become }}" ansible.builtin.copy: remote_src: true mode: "0755" src: "{{ software_atuin_unpack_file }}" dest: "{{ home }}/.local/bin/atuin" - name: Cleanup tags: always become: "{{ use_become }}" ansible.builtin.file: path: "{{ software_atuin_unpack_file }}" state: absent - name: Setup config dirctories tags: - config become: "{{ use_become }}" ansible.builtin.file: mode: "{{ item.mode }}" path: "{{ home }}/{{ item.path }}" owner: "{{ username }}" state: directory with_community.general.filetree: - ../files loop_control: label: "{{ item.path }}" when: item.state == 'directory' - name: Copy config {{ context }} tags: - config become: "{{ use_become }}" ansible.builtin.copy: src: "{{ item.src }}" dest: "{{ home }}/{{ item.path }}" mode: "{{ item.mode }}" owner: "{{ username }}" with_community.general.filetree: - ../files loop_control: label: "{{ item.path }}" when: item.state == 'file'