blob: c3805d90cefa806daa67ae45f1651cf92f008a70 [file] [log] [blame]
William A. Kennington IIIc20feb72021-03-08 12:31:30 -08001#!/bin/bash
2shopt -s nullglob
3declare -A basemap=()
4i=0
5for dir in /run/nftables /etc/nftables /usr/share/nftables; do
6 for file in "$dir"/*.rules; do
7 basemap["${file##*/}$i"]="$file"
8 done
William A. Kennington IIIa5dd3872023-06-05 16:32:50 -07009 (( i+=1 ))
William A. Kennington IIIc20feb72021-03-08 12:31:30 -080010done
William A. Kennington III7356f8e2021-12-15 02:21:52 -080011
12rules=""
13trap 'rm -f -- "$rules"' TERM INT EXIT ERR
14rules="$(mktemp)" || exit
15echo 'flush ruleset' >"$rules"
William A. Kennington IIIc20feb72021-03-08 12:31:30 -080016for key in $(printf "%s\n" "${!basemap[@]}" | sort -r); do
William A. Kennington III7356f8e2021-12-15 02:21:52 -080017 echo "Loading ${basemap[$key]}" >&2
18 echo '' >>"$rules"
19 cat "${basemap[$key]}" >>"$rules"
William A. Kennington IIIc20feb72021-03-08 12:31:30 -080020done
William A. Kennington III7356f8e2021-12-15 02:21:52 -080021nft -f "$rules" || exit