mirror of
https://github.com/arthur-pbty/arthur-os.git
synced 2026-08-05 20:28:25 +02:00
52 lines
1.2 KiB
Bash
52 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
source "$(dirname -- "${BASH_SOURCE[0]}")/base-test.sh"
|
|
|
|
stub_dir=$(mktemp -d)
|
|
trap 'rm -rf "$stub_dir"' EXIT
|
|
|
|
cat >"$stub_dir/ufw" <<'STUB'
|
|
#!/bin/bash
|
|
printf 'ufw %s\n' "$*" >>"$TEST_LOG"
|
|
if [[ ${1:-} == status ]]; then
|
|
echo 'Status: inactive'
|
|
fi
|
|
STUB
|
|
|
|
cat >"$stub_dir/ufw-docker" <<'STUB'
|
|
#!/bin/bash
|
|
set -euo pipefail
|
|
PATH="/bin:/usr/bin:/sbin:/usr/sbin:/snap/bin/"
|
|
printf 'ufw-docker %s\n' "$*" >>"$TEST_LOG"
|
|
if ! ufw status 2>/dev/null | grep -Fq 'Status: active'; then
|
|
echo 'inactive' >&2
|
|
exit 1
|
|
fi
|
|
STUB
|
|
|
|
cat >"$stub_dir/sed" <<'STUB'
|
|
#!/bin/bash
|
|
printf 'sed %s\n' "$*" >>"$TEST_LOG"
|
|
if [[ ${1:-} == 0,/^PATH=* ]]; then
|
|
exec /usr/bin/sed "$@"
|
|
fi
|
|
exit 0
|
|
STUB
|
|
|
|
cat >"$stub_dir/systemctl" <<'STUB'
|
|
#!/bin/bash
|
|
printf 'systemctl %s\n' "$*" >>"$TEST_LOG"
|
|
STUB
|
|
|
|
chmod +x "$stub_dir"/*
|
|
|
|
export TEST_LOG="$stub_dir/firewall.log"
|
|
PATH="$stub_dir:$PATH" bash -eE -c 'source "$1"' bash "$ROOT/install/config/firewall.sh"
|
|
|
|
grep -q '^ufw-docker install$' "$TEST_LOG" || fail "ufw-docker rules are installed"
|
|
grep -q '^systemctl enable ufw$' "$TEST_LOG" || fail "ufw is enabled for next boot"
|
|
|
|
pass "firewall config installs ufw-docker rules without activating live UFW"
|