#!/bin/bash
shopt -s nullglob
declare -A basemap=()
i=0
for dir in /run/nftables /etc/nftables /usr/share/nftables; do
  for file in "$dir"/*.rules; do
    basemap["${file##*/}$i"]="$file"
  done
  let i+=1
done
rc=0
nft flush ruleset || rc=$?
for key in $(printf "%s\n" "${!basemap[@]}" | sort -r); do
  echo "Executing ${basemap[$key]}" >&2
  nft -f "${basemap[$key]}" || rc=$?
done
exit $rc
