Files
desktop-planer/Makefile
2026-09-19 20:59:47 +02:00

74 lines
2.3 KiB
Makefile

# Extension: make install | make update
# Server: make dev (lokal, Port $(PORT)) | make prod (auf dem Server) | make stop | make logs | make down | make test
UUID = desktop@marha.de
SRC = $(CURDIR)/$(UUID)
DEST = $(HOME)/.local/share/gnome-shell/extensions/$(UUID)
VENV = backend/.venv
PORT ?= 8040
.ONESHELL:
.PHONY: install update enable venv dev prod stop logs down test
install:
@if [ -e "$(DEST)" ]; then
echo "Schon installiert: $(DEST)"
echo "Zum Aktualisieren: make update"
exit 0
fi
mkdir -p "$(dir $(DEST))"
cp -r "$(SRC)" "$(DEST)"
$(MAKE) --no-print-directory enable
echo "Installiert. Jetzt ab- und wieder anmelden."
update:
@if [ ! -e "$(DEST)" ]; then
echo "Nicht installiert. Zuerst: make install"
exit 1
fi
if [ -L "$(DEST)" ]; then
echo "$(DEST) ist ein Symlink auf $(SRC), nichts zu kopieren."
else
rm -rf "$(DEST)"
cp -r "$(SRC)" "$(DEST)"
echo "Aktualisiert."
fi
echo "Änderungen wirken nach dem nächsten Ab- und Anmelden."
# UUID in die aktiven Extensions eintragen, falls sie fehlt
enable:
@python3 dev/enable.py "$(UUID)"
# ── Server ───────────────────────────────────────────────────────────────────
venv: $(VENV)/bin/uvicorn
$(VENV)/bin/uvicorn: backend/requirements.txt
python3 -m venv $(VENV)
$(VENV)/bin/pip install -q -r backend/requirements.txt
# Lokal entwickeln. Token kommt aus .env (Vorlage: .env.example).
dev: venv
@[ -f .env ] || { echo ".env fehlt. Vorlage: cp .env.example .env, dann SYNC_TOKEN setzen."; exit 1; }
set -a; . ./.env; set +a
echo "Server: http://localhost:$(PORT)"
cd backend && .venv/bin/uvicorn app.main:app --reload --port $(PORT)
# Produktion (auf dem Server ausführen, im Projektverzeichnis)
prod:
@[ -f .env ] || { echo ".env fehlt. Vorlage: cp .env.example .env, dann SYNC_TOKEN setzen."; exit 1; }
docker compose up -d --build
echo "läuft: https://planer.marha.de"
# [u] statt u: so trifft das Muster nicht die eigene Shell, die es im Aufruf trägt
stop:
-pkill -f "$(CURDIR)/$(VENV)/bin/python3 .venv/bin/[u]vicorn" 2>/dev/null
echo "gestoppt."
logs:
docker compose logs -f
down:
docker compose down
test: venv
cd backend && .venv/bin/python -m pytest -q