50 lines
1.3 KiB
Makefile
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
|