85 lines
1.9 KiB
Makefile
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}}
|