# Ermittelt den Namen des übergeordneten Hauptordners (Parent Directory) PARENTDIR := $(notdir $(patsubst %/,%,$(dir $(CURDIR)))) # Nutzt den Namen des übergeordneten Ordners für die virtuelle Umgebung von uv export UV_PROJECT_ENVIRONMENT := $(HOME)/.cache/uv-environments/$(PARENTDIR) DATE := $(shell date +%Y-%m-%d) TARFILE := ../tgz/$(PARENTDIR)_site_$(DATE).tgz # Publikationsverzeichnis WEBSITE_PARENTDIR := /media/sf_abc123/public_html/jbusse.de/$(PARENTDIR) .PHONY: all sync lab stop preview html tgz publish git backup release clean all: preview sync: uv sync @echo "sync: $$(($$(uv pip list | wc -l) - 2)) Pakete" lab: sync BROWSER="firefox --new-window %s" uv run jupyter lab & stop: -pkill -f "jupyter-lab" -pkill -f "quarto" # Holt sich vor dem Starten immer den aktuellen Paketstand preview: sync BROWSER="firefox --new-window %s" uv run quarto preview & # Rendert die HTML-Dateien mit aktueller Python-Umgebung html: sync uv run quarto render @du -sh _site # Erstellt das komprimierte Archiv im übergeordneten tgz-Ordner tgz: html mkdir -p ../tgz/ tar -czf $(TARFILE) _site/ @du -sh $(TARFILE) # Publiziert den Inhalt, legt die tgz-Datei dazu und zeigt finale Größen an publish: html tgz mkdir -p $(WEBSITE_PARENTDIR) rm -rf $(WEBSITE_PARENTDIR)/* cp -rp _site/. $(WEBSITE_PARENTDIR)/ cp $(TARFILE) $(WEBSITE_PARENTDIR)/ @echo "Website und Archiv erfolgreich nach $(WEBSITE_PARENTDIR) publiziert!" @du -sh $(WEBSITE_PARENTDIR) @du -sh $(TARFILE) # Git-Sicherung (hier lokal im qmd-Ordner, nicht im Hauptordner) git: git add . @if [ -n "$$(git status --porcelain)" ]; then \ git commit -m "Automatischer Build und Commit am $(DATE)"; \ fi backup: @echo "Starte Back In Time Backup..." backintime backup # Feierabend: Rendern, Packen, Publizieren, Gitten und Sichern! release: publish git backup # Gründlich aufräumen clean: stop rm -rf $(UV_PROJECT_ENVIRONMENT) rm -rf .venv rm -rf .quarto/ rm -rf _freeze/ rm -rf _site/ rm -f ../tgz/$(PARENTDIR)_site_*.tgz find . -type d -name "__pycache__" -exec rm -rf {} + find . -type d -name ".ipynb_checkpoints" -exec rm -rf {} + find . -type d -name ".pytest_cache" -exec rm -rf {} + rm -rf $(HOME)/.jupyter/lab/workspaces/$(PARENTDIR)-* rm -f $(HOME)/.jupyter/lab/workspaces/$(PARENTDIR).jupyterlab-workspace