bkctld-rm: fix inc removal
echo-ing the list of incs gives a single line, hard to match with lines in the keep file. We store the incs list in a temp file to help comparing contents.
This commit is contained in:
parent
7e5aad727f
commit
9c6be0e74c
|
@ -79,8 +79,9 @@ for jail_name in $(jails_list); do
|
||||||
# If not incs policy if found, we don't remove incs
|
# If not incs policy if found, we don't remove incs
|
||||||
if [ -n "${incs_policy_file}" ]; then
|
if [ -n "${incs_policy_file}" ]; then
|
||||||
incs_policy_keep_file="$(mktemp)"
|
incs_policy_keep_file="$(mktemp)"
|
||||||
|
incs_list_file="$(mktemp)"
|
||||||
# shellcheck disable=SC2064
|
# shellcheck disable=SC2064
|
||||||
trap "rm ${incs_policy_keep_file}" 0
|
trap "rm -f ${incs_policy_keep_file} ${incs_list_file}" 0
|
||||||
|
|
||||||
# loop for each line in jail configuration
|
# loop for each line in jail configuration
|
||||||
for incs_policy_line in $(grep "^\+" ${incs_policy_file}); do
|
for incs_policy_line in $(grep "^\+" ${incs_policy_file}); do
|
||||||
|
@ -88,11 +89,14 @@ for jail_name in $(jails_list); do
|
||||||
incs_policy_date=$(relative_date ${incs_policy_line})
|
incs_policy_date=$(relative_date ${incs_policy_line})
|
||||||
echo ${incs_policy_date} >> "${incs_policy_keep_file}"
|
echo ${incs_policy_date} >> "${incs_policy_keep_file}"
|
||||||
done
|
done
|
||||||
|
for inc_name in $(incs_list "${jail_name}"); do
|
||||||
|
echo "${inc_name}" >> ${incs_list_file}
|
||||||
|
done
|
||||||
# shellcheck disable=SC2046
|
# shellcheck disable=SC2046
|
||||||
incs_to_delete=$(echo $(incs_list "${jail_name}") | grep -v -f "${incs_policy_keep_file}")
|
incs_to_delete=$(grep -v -f "${incs_policy_keep_file}" "${incs_list_file}")
|
||||||
|
|
||||||
if [ -n "${incs_to_delete}" ]; then
|
if [ -n "${incs_to_delete}" ]; then
|
||||||
notice "${jail_name}: incs to be deleted : $(echo "${incs_to_delete}" | tr '\n', ',')."
|
debug "${jail_name}: incs to be deleted : $(echo "${incs_to_delete}" | tr '\n', ',' | sed 's/,$//')."
|
||||||
for inc_name in ${incs_to_delete}; do
|
for inc_name in ${incs_to_delete}; do
|
||||||
inc_path=$(inc_path "${jail_name}" "${inc_name}")
|
inc_path=$(inc_path "${jail_name}" "${inc_name}")
|
||||||
if is_btrfs "${inc_path}"; then
|
if is_btrfs "${inc_path}"; then
|
||||||
|
|
Loading…
Reference in a new issue