86 lines
1.6 KiB
Makefile
86 lines
1.6 KiB
Makefile
# ©AngelaMos | 2026
|
|
# Justfile
|
|
|
|
set shell := ["bash", "-uc"]
|
|
|
|
project := "fwrule"
|
|
version := "1.0.0"
|
|
src := "src/"
|
|
bin := "bin/" + project
|
|
|
|
default:
|
|
@just --list --unsorted
|
|
|
|
[group('build')]
|
|
build:
|
|
v -o {{bin}} {{src}}
|
|
|
|
[group('build')]
|
|
release:
|
|
v -prod -o {{bin}} {{src}}
|
|
@ls -lh {{bin}}
|
|
|
|
[group('test')]
|
|
test:
|
|
v test {{src}}
|
|
|
|
[group('test')]
|
|
test-verbose:
|
|
v -stats test {{src}}
|
|
|
|
[group('dev')]
|
|
fmt:
|
|
v fmt -w {{src}}
|
|
|
|
[group('dev')]
|
|
fmt-check:
|
|
v fmt -verify {{src}}
|
|
|
|
[group('dev')]
|
|
run *ARGS:
|
|
v -o {{bin}} {{src}} && ./{{bin}} {{ARGS}}
|
|
|
|
[group('dev')]
|
|
load FILE:
|
|
@just run load {{FILE}}
|
|
|
|
[group('dev')]
|
|
analyze FILE:
|
|
@just run analyze {{FILE}}
|
|
|
|
[group('dev')]
|
|
harden *ARGS:
|
|
@just run harden {{ARGS}}
|
|
|
|
[group('dev')]
|
|
export FILE *ARGS:
|
|
@just run export {{FILE}} {{ARGS}}
|
|
|
|
[group('dev')]
|
|
diff F1 F2:
|
|
@just run diff {{F1}} {{F2}}
|
|
|
|
[group('util')]
|
|
clean:
|
|
rm -rf bin/
|
|
find . -name '*.tmp.c' -delete
|
|
|
|
[group('util')]
|
|
info:
|
|
@echo "{{project}} v{{version}}"
|
|
@echo "V compiler: $(v version)"
|
|
@echo "Platform: $(uname -s)/$(uname -m)"
|
|
|
|
[group('util')]
|
|
smoke: build
|
|
./{{bin}} version
|
|
./{{bin}} help
|
|
./{{bin}} load testdata/iptables_basic.rules
|
|
./{{bin}} load testdata/nftables_basic.rules
|
|
./{{bin}} analyze testdata/iptables_conflicts.rules
|
|
./{{bin}} harden -s ssh,http,https -f iptables
|
|
./{{bin}} harden -s ssh,http,https -f nftables
|
|
./{{bin}} export testdata/iptables_basic.rules -f nftables
|
|
./{{bin}} diff testdata/iptables_basic.rules testdata/nftables_basic.rules
|
|
@echo "All smoke tests passed"
|