#!/bin/sh

if [ "${1:-}" = "force" ]; then
    if incus info >/dev/null 2>&1; then
        incus list -cn -f csv | grep -v ^cache- | xargs -r incus delete -f
        incus image list -cF -fcsv | xargs -r  incus image delete
        incus admin sql global "DELETE FROM storage_volumes WHERE name NOT LIKE 'cache-%'"
        rm -Rf /var/log/incus/*

        for i in $(zfs list -o name -r default/containers | grep containers/ | grep -v containers/cache-); do zfs destroy -R "$i"; done
        for i in $(zfs list -o name -r default/images | grep images/); do zfs destroy -R "$i"; done
        for i in $(zfs list -o name -r default/deleted/containers | grep deleted/containers/); do zfs destroy -R "$i"; done
        for i in $(zfs list -o name -r default/deleted/images | grep deleted/images/); do zfs destroy -R "$i"; done
        for i in $(ls /var/lib/incus/storage-pools/default/containers | grep -v cache-); do rm -Rf "/var/lib/incus/storage-pools/default/containers/$i"; done
        for i in $(ls /var/lib/incus/containers/ | grep -v cache-); do rm -Rf "/var/lib/incus/containers/$i"; done

        incus storage volume list default -cnt -fcsv | grep container$ | cut -d, -f1 | while read line; do incus info $line >/dev/null 2>&1 || echo $line; done | while read line; do incus admin sql global "DELETE FROM storage_volumes WHERE type=0 AND name='$line'"; rm -Rf /var/lib/incus/containers/$line; rm -Rf /var/lib/incus/storage-pools/default/containers/$line; zfs destroy default/containers/$line; done

        systemctl restart incus
    fi
fi

chown -R jenkins:jenkins /home/jenkins
