PROJECT := certificate-expire-check USER := $(PROJECT) INSTALL_DIR := /etc/$(PROJECT) SCRIPT := $(INSTALL_DIR)/main.py CRON_SCHEDULE := 0 0 */10 * * .PHONY: all user install cron clean all: install cron user: @echo "==> Ensuring user '$(USER)' exists…" @sudo getent passwd $(USER) > /dev/null 2>&1 || \ ( sudo useradd --system --no-create-home --shell /usr/sbin/nologin $(USER) && \ echo "User '$(USER)' created." ) @echo "User '$(USER)' ready." install: user @echo "==> Installing project to $(INSTALL_DIR)…" @sudo mkdir -p $(INSTALL_DIR) @sudo cp -r ./* $(INSTALL_DIR) @sudo chown -R $(USER):$(USER) $(INSTALL_DIR) @echo "Installed and chown → $(USER):$(USER)." cron: install @echo "==> Configuring cron job…" @CRON_LINE="$(CRON_SCHEDULE) $(USER) /usr/bin/python3 $(SCRIPT) >> /var/log/$(PROJECT).log 2>&1" @sudo crontab -u $(USER) -l 2>/dev/null | grep -F "$$CRON_LINE" \ || ( sudo crontab -u $(USER) -l 2>/dev/null; echo "$$CRON_LINE" ) \ | sudo crontab -u $(USER) - @echo "Cron line for '$(USER)':" @echo " $$CRON_LINE" clean: @echo "==> Cleaning up…" -sudo crontab -u $(USER) -r -sudo userdel $(USER) -sudo rm -rf $(INSTALL_DIR) @echo "Cleanup done."