PKGNAME := de-p1st-monitor

.PHONY: all
all: install-pkgbuild

.PHONY: install-pkgbuild
install-pkgbuild: cron  ## Install with pacman (on Arch Linux)
	sudo pacman -S --needed base-devel
	cd packaging && makepkg -fCcsri && rm -rf $(PKGNAME)
	${MAKE} install-files

.PHONY: install-pip
install-pip: exec-notify cron  ## Install with pip
	sudo python3 -m pip install --upgrade --force-reinstall .
	${MAKE} install-files

.PHONY: install-files
install-files:
	sudo install -m0644 cron.d/$(PKGNAME) /etc/cron.d/$(PKGNAME)

	sudo install --directory -m755 /etc/$(PKGNAME)/
	sudo install -m0644 src/de/p1st/monitor/data/* /etc/$(PKGNAME)/

.PHONY: exec-notify  ## Check if exec-notify is installed.
exec-notify:
	# `type` does not work e.g. on Ubuntu 18.04
	which exec-notify

.PHONY: cron  ## Check if cron (e.g. cronie) is running.
cron:
	# Check if cron.d exists
	stat /etc/cron.d/
	# Check if cron is running
	pgrep cron


.PHONY: clean-pkgbuild
clean-pkgbuild: clean-files
	sudo pacman -Rns python-$(PKGNAME)-git

.PHONY: clean-pip
clean-pip: clean-files
	sudo python3 -m pip uninstall -y $(PKGNAME)

.PHONY: clean-files
clean-files:
	sudo rm -rf /etc/cron.d/$(PKGNAME) /etc/$(PKGNAME) /var/log/$(PKGNAME).cron
