29 lines
1.5 KiB
YAML
29 lines
1.5 KiB
YAML
# SPDX-License-Identifier: MIT
|
|
- name: 'Check if ZFS functional'
|
|
register: 'genvm_archlinux_zfs_pacman_cache_os_has_functional_zfs'
|
|
changed_when: false
|
|
failed_when: false
|
|
ansible.builtin.shell: |
|
|
zpool list
|
|
|
|
- name: 'If ZFS functional check if pacman cache dataset exists'
|
|
when: 'genvm_archlinux_zfs_pacman_cache_os_has_functional_zfs.rc == 0'
|
|
register: 'genvm_archlinux_zfs_pacman_cache_zfs_has_pacman_cache_dataset'
|
|
changed_when: false
|
|
failed_when: false
|
|
ansible.builtin.shell: |
|
|
zfs list zpool/root/archlinux/var/cache/pacman/pkg
|
|
|
|
- name: 'If no pacman cache dataset exists create dataset'
|
|
when: 'genvm_archlinux_zfs_pacman_cache_zfs_has_pacman_cache_dataset.rc > 0'
|
|
register: 'genvm_archlinux_zfs_pacman_cache_pacman_cache_dir_was_temp_moved'
|
|
changed_when: 'genvm_archlinux_zfs_pacman_cache_pacman_cache_dir_was_temp_moved.rc == 0'
|
|
ansible.builtin.shell: |
|
|
mv '/var/cache/pacman/pkg'{,'.bak'} && \
|
|
if ! zfs list zpool/root/archlinux/var &>/dev/null; then zfs create -o canmount=off zpool/root/archlinux/var; fi && \
|
|
if ! zfs list zpool/root/archlinux/var/cache &>/dev/null; then zfs create -o canmount=off zpool/root/archlinux/var/cache; fi && \
|
|
if ! zfs list zpool/root/archlinux/var/cache/pacman &>/dev/null; then zfs create -o canmount=off zpool/root/archlinux/var/cache/pacman; fi && \
|
|
zfs create zpool/root/archlinux/var/cache/pacman/pkg && \
|
|
rsync -a --remove-source-files '/var/cache/pacman/pkg'{'.bak',}'/' && \
|
|
find '/var/cache/pacman/pkg.bak' -type d -empty -delete
|