olivetin/docs/modules/ROOT/images/screenshots.mk

50 lines
1.3 KiB
Makefile

.PHONY: update-screenshots start stop
ROOT := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))/../../../..)
OLIVETIN ?= $(ROOT)/service/OliveTin
PORT := 11337
ifndef CONFIGDIR
$(error CONFIGDIR must be set before including screenshots.mk)
endif
.DEFAULT_GOAL := update-screenshots
start:
@set -e; \
if curl -sf "http://localhost:$(PORT)/" >/dev/null 2>&1; then \
echo "Port $(PORT) is already in use; run 'make stop' first"; \
exit 1; \
fi; \
cd "$(ROOT)/service" && "$(OLIVETIN)" -configdir "$(CONFIGDIR)" & \
pid=$$!; \
for i in 1 2 3 4 5 6 7 8 9 10; do \
if curl -sf "http://localhost:$(PORT)/" >/dev/null; then \
exit 0; \
fi; \
if ! kill -0 $$pid 2>/dev/null; then \
echo "OliveTin exited before listening on port $(PORT)"; \
exit 1; \
fi; \
sleep 1; \
done; \
echo "Timed out waiting for OliveTin on port $(PORT)"; \
exit 1
stop:
@set +e; \
if command -v fuser >/dev/null 2>&1; then \
fuser -k $(PORT)/tcp 2>/dev/null; \
else \
for pid in $$(lsof -t -i :$(PORT) 2>/dev/null); do kill $$pid 2>/dev/null; done; \
fi; \
for i in 1 2 3 4 5; do \
curl -sf "http://localhost:$(PORT)/" >/dev/null || exit 0; \
sleep 1; \
done; \
exit 0
update-screenshots: stop start
cd "$(CONFIGDIR)" && repo-helper screenshot --config screenshots.ini
@$(MAKE) stop