PKGNAME := netcup-dns

.PHONY: all
all: install

.PHONY: install
install: cron
	sudo pacman -S --needed base-devel
	cd packaging && makepkg -fCcsri && rm -rf $(PKGNAME)
	${MAKE} install-files

.PHONY: install-pip
install-pip: nc-dnsapi requests exec-notify cron
	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 cfg/* /etc/$(PKGNAME)/

.PHONY: nc-dnsapi  ## Check if nc-dnsapi is installed.
nc-dnsapi:
	pip list | cut -f 1 -d ' ' | grep '^nc-dnsapi$$' || sudo pacman -S --needed python-nc-dnsapi

.PHONY: requests  ## Check if requests is installed.
requests:
	pip list | cut -f 1 -d ' ' | grep '^requests$$' || sudo pacman -S --needed python-requests

.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

clean: 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)
