Files
ansible_role_package/tasks/helpers/archive.yml
2026-02-05 17:18:02 -07:00

53 lines
1.8 KiB
YAML

# vim: set filetype=yaml.ansible :
---
- name: Ensure requirements met
when:
- pkg.extract_to is defined
- pkg.name is defined
- pkg.url is defined
block:
- name: Extract archive to given path
block:
- name: Ensure directory exists
become: "{{ install_become }}"
become_user: "{{ install_become_user }}"
ansible.builtin.file:
state: directory
path: "{{ pkg.extract_to }}"
mode: "{{ pkg.mode | default('0755') }}"
owner: "{{ pkg.owner | default(ansible_user_id)}}"
group: "{{ pkg.group | default(ansible_user_gid) }}"
- name: Download archive to cache
ansible.builtin.get_url:
dest: "{{ d_cache.path }}/{{ pkg.name }}"
url: "{{ pkg.url }}"
checksum: "{{ pkg.checksum | default(omit) }}"
decompress: false
mode: '0644'
- name: Extract archive
become: "{{ install_become }}"
become_user: "{{ install_become_user }}"
ansible.builtin.unarchive:
dest: "{{ pkg.extract_to }}"
src: "{{ d_cache.path }}/{{ pkg.name }}"
remote_src: true
include: "{{ pkg.include | default(omit) }}"
exclude: "{{ pkg.exclude | default(omit) }}"
- name: Symlink archive files
become: "{{ install_become }}"
become_user: "{{ install_become_user }}"
when:
- pkg.links is defined
- pkg.links | length > 0
loop: "{{ pkg.links }}"
loop_control:
loop_var: lnk
ansible.builtin.file:
state: link
path: "{{ lnk.to }}"
src: "{{ lnk.from }}"
force: "{{ lnk.force | default(omit) }}"