PREFIX        ?= /usr/local
BINDIR        := $(PREFIX)/bin
APPDIR        := $(PREFIX)/share/applications
SYSTEMDDIR    := /etc/systemd/system
CONFDIR       := /etc
LOGDIR        := /var/log/freeze-watcher
LOG_GROUP     ?= $(shell id -gn)

.PHONY: install uninstall enable disable status logs clean

install:
	install -Dm755 src/freeze-watcher.sh         $(DESTDIR)$(BINDIR)/freeze-watcher.sh
	install -Dm755 src/freeze-monitor-gui        $(DESTDIR)$(BINDIR)/freeze-monitor-gui
	install -Dm755 src/freeze-snapshot-convert   $(DESTDIR)$(BINDIR)/freeze-snapshot-convert
	install -Dm644 systemd/freeze-watcher.service $(DESTDIR)$(SYSTEMDDIR)/freeze-watcher.service
	install -Dm644 desktop/freeze-monitor.desktop $(DESTDIR)$(APPDIR)/freeze-monitor.desktop
	@if [ ! -e "$(DESTDIR)$(CONFDIR)/freeze-watcher.conf" ]; then \
		install -Dm644 config/freeze-watcher.conf $(DESTDIR)$(CONFDIR)/freeze-watcher.conf; \
		echo "Installed default config at $(CONFDIR)/freeze-watcher.conf"; \
	else \
		install -Dm644 config/freeze-watcher.conf $(DESTDIR)$(CONFDIR)/freeze-watcher.conf.new; \
		echo "Existing config preserved; new template at $(CONFDIR)/freeze-watcher.conf.new"; \
	fi
	install -dm775 -g $(LOG_GROUP) $(DESTDIR)$(LOGDIR)
	@echo "Installed. Run 'make enable' to start the service."

uninstall:
	rm -f $(DESTDIR)$(BINDIR)/freeze-watcher.sh
	rm -f $(DESTDIR)$(BINDIR)/freeze-monitor-gui
	rm -f $(DESTDIR)$(BINDIR)/freeze-snapshot-convert
	rm -f $(DESTDIR)$(SYSTEMDDIR)/freeze-watcher.service
	rm -f $(DESTDIR)$(APPDIR)/freeze-monitor.desktop
	rm -f $(DESTDIR)$(CONFDIR)/freeze-watcher.conf.new
	@echo "Uninstalled. Config at $(CONFDIR)/freeze-watcher.conf and logs at $(LOGDIR) preserved."

enable:
	systemctl daemon-reload
	systemctl enable --now freeze-watcher.service

disable:
	systemctl disable --now freeze-watcher.service

status:
	systemctl status freeze-watcher.service --no-pager

logs:
	journalctl -u freeze-watcher.service -f

clean:
	@echo "Nothing to clean (no build artifacts)."
