mirror of
https://github.com/fscotto/infra.git
synced 2026-05-30 15:39:58 +00:00
40 lines
1.4 KiB
YAML
40 lines
1.4 KiB
YAML
---
|
|
- name: Check installed {{ source_tool.name }} binary
|
|
ansible.builtin.stat:
|
|
path: "/usr/local/bin/{{ source_tool.install_name | default(source_tool.name) }}"
|
|
register: source_tool_installed_binary
|
|
|
|
- name: Clone {{ source_tool.name }} repository
|
|
ansible.builtin.git:
|
|
repo: "{{ source_tool.repo }}"
|
|
dest: "{{ user_home }}/.local/src/{{ source_tool.name }}"
|
|
update: true
|
|
become_user: "{{ username }}"
|
|
environment:
|
|
HOME: "{{ user_home }}"
|
|
register: source_tool_repo_state
|
|
|
|
- name: Check built {{ source_tool.name }} binary
|
|
ansible.builtin.stat:
|
|
path: "{{ user_home }}/.local/src/{{ source_tool.name }}/{{ source_tool.binary_name | default(source_tool.name) }}"
|
|
register: source_tool_built_binary
|
|
|
|
- name: Build {{ source_tool.name }}
|
|
ansible.builtin.command:
|
|
cmd: "{{ source_tool.build_cmd }}"
|
|
chdir: "{{ user_home }}/.local/src/{{ source_tool.name }}"
|
|
when:
|
|
- source_tool_repo_state.changed or not source_tool_built_binary.stat.exists
|
|
|
|
- name: Install {{ source_tool.name }}
|
|
ansible.builtin.copy:
|
|
src: "{{ user_home }}/.local/src/{{ source_tool.name }}/{{ source_tool.binary_name | default(source_tool.name) }}"
|
|
dest: "/usr/local/bin/{{ source_tool.install_name | default(source_tool.name) }}"
|
|
remote_src: true
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
become: true
|
|
when:
|
|
- source_tool_repo_state.changed or not source_tool_installed_binary.stat.exists
|