PREFIX ?= /usr/local BINDIR := $(PREFIX)/bin LIBDIR := $(PREFIX)/lib/enodia-sentinel SYSTEMDDIR := /etc/systemd/system CONFDIR := /etc LOGDIR := /var/log/enodia-sentinel .PHONY: install uninstall enable disable status logs check baseline drill test clean # Installs the stdlib-only Python package as a plain directory + launcher # wrapper (no pip, no virtualenv, no site-packages). Zero runtime deps. install: install -d $(DESTDIR)$(LIBDIR) cp -r enodia_sentinel $(DESTDIR)$(LIBDIR)/ install -Dm755 packaging/enodia-sentinel.wrapper $(DESTDIR)$(BINDIR)/enodia-sentinel install -Dm755 src/sentinel-redteam $(DESTDIR)$(BINDIR)/sentinel-redteam install -Dm644 systemd/enodia-sentinel.service $(DESTDIR)$(SYSTEMDDIR)/enodia-sentinel.service install -Dm644 systemd/enodia-sentinel-web.service $(DESTDIR)$(SYSTEMDDIR)/enodia-sentinel-web.service install -Dm644 packaging/enodia-sentinel-fim.hook $(DESTDIR)/etc/pacman.d/hooks/enodia-sentinel-fim.hook @if [ ! -e "$(DESTDIR)$(CONFDIR)/enodia-sentinel.toml" ]; then \ install -Dm644 config/enodia-sentinel.toml $(DESTDIR)$(CONFDIR)/enodia-sentinel.toml; \ echo "Installed default config at $(CONFDIR)/enodia-sentinel.toml"; \ else \ install -Dm644 config/enodia-sentinel.toml $(DESTDIR)$(CONFDIR)/enodia-sentinel.toml.new; \ echo "Existing config preserved; new template at $(CONFDIR)/enodia-sentinel.toml.new"; \ fi install -dm750 $(DESTDIR)$(LOGDIR) @echo "Installed. Run 'sudo make enable' to start the service." uninstall: rm -rf $(DESTDIR)$(LIBDIR) rm -f $(DESTDIR)$(BINDIR)/enodia-sentinel rm -f $(DESTDIR)$(BINDIR)/sentinel-redteam rm -f $(DESTDIR)$(SYSTEMDDIR)/enodia-sentinel.service rm -f $(DESTDIR)$(SYSTEMDDIR)/enodia-sentinel-web.service rm -f $(DESTDIR)/etc/pacman.d/hooks/enodia-sentinel-fim.hook rm -f $(DESTDIR)$(CONFDIR)/enodia-sentinel.toml.new @echo "Uninstalled. Config and logs preserved." enable: systemctl daemon-reload systemctl enable --now enodia-sentinel.service disable: systemctl disable --now enodia-sentinel.service status: systemctl status enodia-sentinel.service --no-pager logs: journalctl -u enodia-sentinel.service -f # Dev targets — run from the repo without installing. test: python3 -m unittest discover -s tests -v check: python3 -m enodia_sentinel.cli check baseline: python3 -m enodia_sentinel.cli baseline web: python3 -m enodia_sentinel.cli web drill: ./src/sentinel-redteam clean: find . -type d -name __pycache__ -prune -exec rm -rf {} +