# vim: set filetype=yaml.ansible : --- - name: Cargo source install helper block: - name: Set build variables ansible.builtin.set_fact: git_path: "{{ d_tempdir.path }}/{{ pkg.name }}" git_repo: "{{ pkg.repo }}" git_depth: "{{ pkg.depth | default(1) }}" git_recursive: "{{ pkg.recursive | default(true) }}" git_version: "{{ pkg.version | default(omit) }}" - name: Fetch git repo ansible.builtin.include_tasks: file: helpers/git.yml - name: Build cargo release ansible.builtin.command: creates: "{{ pkg.bin_output }}" chdir: "{{ pkg.path }}" argv: "{{ [cargo, build] + pkg.build_flags }}" - name: Install cargo release block: - name: Install binary when: - bin_name is defined - bin_output is defined become: true ansible.builtin.copy: backup: false dest: "{{ install_prefix }}/bin/{{ bin_name }}" owner: root group: root mode: "0755" remote_src: true src: "{{ git_path }}/{{ bin_output }}" - name: Install additional files when: - install_files is defined block: - name: Create missing directories loop: "{{ install_files | dict2items }}" loop_control: loop_var: file ansible.builtin.file: path: "{{ install_prefix }}/{{ file.value | dirname }}" owner: root group: root mode: "0755" state: directory - name: Copy extra files loop: "{{ install_files | dict2items }}" loop_control: loop_var: file ansible.builtin.copy: backup: false dest: "{{ install_prefix }}/{{ file.value }}" owner: root group: root mode: "0644" remote_src: true src: "{{ git_path }}/{{ file.key }}"