# vim: set filetype=yaml.ansible : --- - name: Cargo source install helper block: - name: Fetch git repo vars: git: path: "{{ d_cache.path }}/{{ cargo_build.name }}" repo: "{{ cargo_build.repo }}" depth: "{{ cargo_build.depth | default(1) }}" force: "{{ cargo_build.force_git | default(true) }}" recursive: "{{ cargo_build.recursive | default(true) }}" version: "{{ cargo_build.version | default(omit) }}" ansible.builtin.include_tasks: file: helpers/git.yml - name: Build cargo release ansible.builtin.command: chdir: "{{ d_cache.path }}/{{ cargo_build.name }}" argv: "{{ [cargo, build] + cargo_build.build_flags }}" - name: Install cargo release block: - name: Create missing directories become: "{{ install_become }}" become_user: "{{ install_become_user }}" loop: "{{ cargo_build.files }}" loop_control: loop_var: file ansible.builtin.file: state: directory path: "{{ install_prefix }}/{{ file.to | dirname }}" mode: '0755' owner: "{{ cargo_build.owner | default(ansible_user_id) }}" group: "{{ cargo_build.group | default(ansible_user_gid) }}" - name: Install release files become: "{{ install_become }}" become_user: "{{ install_become_user }}" loop: "{{ cargo_build.files }}" loop_control: loop_var: file ansible.builtin.copy: backup: false remote_src: true src: "{{ d_cache.path }}/{{ cargo_build.name }}/{{ file.from }}" dest: "{{ install_prefix }}/{{ file.to }}" owner: "{{ cargo_build.owner | default(ansible_user_id) }}" group: "{{ cargo_build.group | default(ansible_user_gid) }}" mode: "{{ file.mode | default('0644') }}" force: "{{ file.force | default(true) }}"