52 lines
2.0 KiB
YAML
52 lines
2.0 KiB
YAML
# 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) }}"
|