#!/bin/sh # # Remove jail or all # Usage: remove |all # LIBDIR="$(dirname $0)" && . "${LIBDIR}/config" jail="${1:-}" if [ ! -n "${jail}" ]; then "${LIBDIR}/bkctld-help" && exit 1 fi [ -d "${JAILDIR}/${jail}" ] || error "${jail} : trying to remove inexistant jail" "${LIBDIR}/bkctld-is-on" "${jail}" && "${LIBDIR}/bkctld-stop" "${jail}" rm -f "${CONFDIR}/${jail}" jail_inode=$(stat --format=%i "${JAILDIR}/${jail}") if [ "${jail_inode}" -eq 256 ]; then /bin/btrfs subvolume delete "${JAILDIR}/${jail}" | debug else rm -rf "${JAILDIR}/${jail}" | debug fi if [ -d "${INCDIR}/${jail}" ]; then incs=$(ls "${INCDIR}/${jail}") for inc in ${incs}; do inc_inode=$(stat --format=%i "${INCDIR}/${jail}/${inc}") if [ "${inc_inode}" -eq 256 ]; then /bin/btrfs subvolume delete "${INCDIR}/${jail}/${inc}" | debug else warning "You need to purge ${INCDIR}/${jail}/${inc} manually !" fi done rmdir --ignore-fail-on-non-empty "${INCDIR}/${jail}" | debug fi "${LIBDIR}/bkctld-firewall" "${jail}" notice "${jail} : deleted jail"