61 lines
1.8 KiB
YAML
61 lines
1.8 KiB
YAML
# vim: set filetype=yaml.ansible :
|
|
#
|
|
## Package: cargo
|
|
## Description: the Rust package manager
|
|
## Version: system
|
|
## Methods: system
|
|
## Helpers: -
|
|
---
|
|
- name: Set default cargo values # {{{
|
|
ansible.builtin.set_fact:
|
|
cargo:
|
|
methods:
|
|
default: [system]
|
|
pkgname:
|
|
default: cargo
|
|
Archlinux: rust
|
|
pkg_deps:
|
|
default:
|
|
- rust
|
|
Archlinux: []
|
|
- name: Finalise cargo default facts
|
|
ansible.builtin.set_fact:
|
|
cargo:
|
|
methods: "{{ cargo.methods[os_family] | default(cargo.methods.default) }}"
|
|
pkgname: "{{ cargo.pkgname[os_family] | default(cargo.pkgname.default) }}"
|
|
pkg_deps: "{{ cargo.pkg_deps[os_family] | default(cargo.pkg_deps.default) }}"
|
|
# }}}
|
|
- name: Configure cargo
|
|
when:
|
|
- "'cargo' not in __configured"
|
|
block:
|
|
- name: Set cargo install method
|
|
when:
|
|
- cargo_imethod is undefined
|
|
ansible.builtin.set_fact:
|
|
cargo_imethod: "{{ imethod if imethod in cargo.methods else cargo.methods[0] }}"
|
|
|
|
- name: Append cargo to install list
|
|
when:
|
|
- cargo_imethod == "system"
|
|
block:
|
|
- name: Add dependencies
|
|
when:
|
|
- cargo.pkg_deps is defined
|
|
loop: "{{ cargo.pkg_deps }}"
|
|
loop_control:
|
|
loop_var: dep
|
|
ansible.builtin.include_tasks: "pkgs/{{ dep }}.yml"
|
|
|
|
- name: Queue cargo install
|
|
ansible.builtin.set_fact:
|
|
pkg_sys: "{{ pkg_sys + [cargo.pkgname] }}"
|
|
|
|
- name: Finalise cargo system install
|
|
ansible.builtin.set_fact:
|
|
cargo_install: "{{ cargo_imethod }}={{ cargo.pkgname }}"
|
|
|
|
- name: Finalize cargo configuration
|
|
ansible.builtin.set_fact:
|
|
__configured: "{{ __configured | combine ( { 'cargo': cargo_install } ) }}"
|