This commit is contained in:
50
Makefile
50
Makefile
@@ -1,4 +1,4 @@
|
||||
.PHONY: all clean norm author author-stop author-restart help
|
||||
.PHONY: all clean norm author author-stop author-restart author-status help
|
||||
|
||||
VENV := .venv
|
||||
PY := $(VENV)/bin/python
|
||||
@@ -6,8 +6,10 @@ PIP := $(VENV)/bin/pip
|
||||
PERM_DIR := /home/zaine/master-folder/projects/scripts/bash-scripts
|
||||
|
||||
AUTHOR_PORT := 8765
|
||||
AUTHOR_URL := http://127.0.0.1:$(AUTHOR_PORT)
|
||||
AUTHOR_PID := /home/zaine/logs/authoring-server.pid
|
||||
AUTHOR_LOG := /home/zaine/logs/authoring-server.log
|
||||
AUTHOR_PAGES_CHECK := /tmp/authoring-server-pages.json
|
||||
|
||||
all: set-perms clean-output build search clean-venv author-restart
|
||||
|
||||
@@ -40,9 +42,9 @@ norm:
|
||||
@echo "sorting out the backups..."
|
||||
find . -path ./backups -prune -o -type f -name '*~' -exec mv {} backups/ \;
|
||||
|
||||
author:
|
||||
author: $(VENV)
|
||||
@echo "Starting local authoring UI in foreground..."
|
||||
python3 authoring_server.py
|
||||
$(PY) authoring_server.py
|
||||
|
||||
author-stop:
|
||||
@echo "Stopping existing authoring UI if running..."
|
||||
@@ -50,22 +52,37 @@ author-stop:
|
||||
@if [ -f "$(AUTHOR_PID)" ]; then \
|
||||
PID=$$(cat "$(AUTHOR_PID)"); \
|
||||
if kill -0 $$PID 2>/dev/null; then \
|
||||
echo "Killing PID $$PID"; \
|
||||
kill $$PID || true; \
|
||||
sleep 1; \
|
||||
echo "Stopping PID $$PID"; \
|
||||
kill $$PID 2>/dev/null || true; \
|
||||
for i in 1 2 3 4 5; do \
|
||||
if ! kill -0 $$PID 2>/dev/null; then break; fi; \
|
||||
sleep 1; \
|
||||
done; \
|
||||
if kill -0 $$PID 2>/dev/null; then \
|
||||
echo "PID $$PID did not stop cleanly; killing it."; \
|
||||
kill -9 $$PID 2>/dev/null || true; \
|
||||
fi; \
|
||||
fi; \
|
||||
rm -f "$(AUTHOR_PID)"; \
|
||||
fi
|
||||
@fuser -k $(AUTHOR_PORT)/tcp 2>/dev/null || true
|
||||
@fuser -k $(AUTHOR_PORT)/tcp >/dev/null 2>&1 || true
|
||||
|
||||
author-restart: author-stop
|
||||
author-restart: $(VENV) author-stop
|
||||
@echo "Starting authoring UI on port $(AUTHOR_PORT)..."
|
||||
@mkdir -p /home/zaine/logs
|
||||
@nohup python3 authoring_server.py > "$(AUTHOR_LOG)" 2>&1 & echo $$! > "$(AUTHOR_PID)"
|
||||
@echo "Waiting for authoring UI to respond..."
|
||||
@start-stop-daemon --start --background --make-pidfile --pidfile "$(AUTHOR_PID)" \
|
||||
--chdir "$(CURDIR)" --startas "$(CURDIR)/$(PY)" -- \
|
||||
authoring_server.py > "$(AUTHOR_LOG)" 2>&1
|
||||
@echo "Waiting for authoring UI and page list to respond..."
|
||||
@for i in 1 2 3 4 5 6 7 8 9 10; do \
|
||||
if curl -fsS http://127.0.0.1:$(AUTHOR_PORT)/ >/dev/null; then \
|
||||
echo "Authoring UI is running on http://127.0.0.1:$(AUTHOR_PORT)/"; \
|
||||
PID=$$(cat "$(AUTHOR_PID)"); \
|
||||
if ! kill -0 $$PID 2>/dev/null; then \
|
||||
echo "Authoring UI process exited before becoming healthy. Last logs:"; \
|
||||
tail -n 40 "$(AUTHOR_LOG)" || true; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
if curl -fsS "$(AUTHOR_URL)/api/pages" -o "$(AUTHOR_PAGES_CHECK)" && $(PY) -c 'import json,sys; data=json.load(sys.stdin); sys.exit(0 if isinstance(data, list) and data else 1)' < "$(AUTHOR_PAGES_CHECK)"; then \
|
||||
echo "Authoring UI is running on $(AUTHOR_URL)/"; \
|
||||
exit 0; \
|
||||
fi; \
|
||||
sleep 1; \
|
||||
@@ -74,6 +91,14 @@ author-restart: author-stop
|
||||
tail -n 40 "$(AUTHOR_LOG)" || true; \
|
||||
exit 1
|
||||
|
||||
author-status:
|
||||
@if [ -f "$(AUTHOR_PID)" ] && kill -0 $$(cat "$(AUTHOR_PID)") 2>/dev/null; then \
|
||||
echo "PID: $$(cat "$(AUTHOR_PID)")"; \
|
||||
else \
|
||||
echo "No live authoring UI PID recorded."; \
|
||||
fi
|
||||
@curl -fsS "$(AUTHOR_URL)/api/pages" -o "$(AUTHOR_PAGES_CHECK)" && $(PY) -c 'import json,sys; print(f"Pages: {len(json.load(sys.stdin))}")' < "$(AUTHOR_PAGES_CHECK)" || true
|
||||
|
||||
help:
|
||||
@echo "Available targets:"
|
||||
@echo " make - Full rebuild and restart authoring UI"
|
||||
@@ -85,5 +110,6 @@ help:
|
||||
@echo " make author - Start the local authoring UI in foreground"
|
||||
@echo " make author-stop - Stop the authoring UI"
|
||||
@echo " make author-restart - Restart the authoring UI in background"
|
||||
@echo " make author-status - Show authoring UI PID and page count"
|
||||
@echo " make search - Create the search index"
|
||||
@echo " make help - Show this help message"
|
||||
|
||||
Reference in New Issue
Block a user