Cybersecurity-Projects/PROJECTS/beginner/linux-cis-hardening-auditor/Justfile

85 lines
1.9 KiB
Makefile

# ©AngelaMos | 2026
# Justfile
set shell := ["bash", "-uc"]
project := "cisaudit"
src := "src"
tests := "tests"
default:
@just --list --unsorted
[group('run')]
audit *ARGS:
sudo ./{{src}}/cisaudit.sh {{ARGS}}
[group('run')]
audit-json:
sudo ./{{src}}/cisaudit.sh -f json
[group('run')]
audit-html file="/tmp/cis-report.html":
sudo ./{{src}}/cisaudit.sh -f html -o {{file}} && echo "Report: {{file}}"
[group('run')]
audit-level level:
sudo ./{{src}}/cisaudit.sh -l {{level}}
[group('run')]
audit-category cats:
sudo ./{{src}}/cisaudit.sh -c {{cats}}
[group('run')]
list-controls:
./{{src}}/cisaudit.sh --list-controls
[group('test')]
test:
bash {{tests}}/test_runner.sh
[group('test')]
test-verbose:
bash {{tests}}/test_runner.sh 2>&1
[group('test')]
test-file file:
bash {{tests}}/test_runner.sh {{file}}
[group('lint')]
shellcheck:
shellcheck -x {{src}}/cisaudit.sh {{src}}/lib/*.sh {{src}}/checks/*.sh {{src}}/controls/*.sh
[group('util')]
install:
bash install.sh
[group('util')]
clean:
rm -rf reports/ baselines/ /tmp/cis-report.html /tmp/cis_baseline*.json
[group('util')]
info:
@echo "Project: {{project}}"
@./{{src}}/cisaudit.sh --version
@echo "Bash: $(bash --version | head -1)"
@echo "Controls: $(./{{src}}/cisaudit.sh --list-controls 2>/dev/null | tail -1)"
[group('util')]
smoke:
./{{src}}/cisaudit.sh --version
./{{src}}/cisaudit.sh --help > /dev/null
./{{src}}/cisaudit.sh --list-controls > /dev/null
./{{src}}/cisaudit.sh -t testdata/fixtures -f json 2>/dev/null | python3 -m json.tool > /dev/null
./{{src}}/cisaudit.sh -t testdata/fixtures -f terminal > /dev/null 2>&1
@echo "Smoke tests passed"
[group('baseline')]
save-baseline file="baselines/latest.json":
mkdir -p baselines
sudo ./{{src}}/cisaudit.sh -f json -s {{file}} > /dev/null
[group('baseline')]
diff-baseline file:
sudo ./{{src}}/cisaudit.sh -f terminal -b {{file}}