|
| 1 | +.DEFAULT_GOAL := help |
| 2 | + |
| 3 | +# Shell settings |
| 4 | +SHELL := /bin/bash |
| 5 | + |
| 6 | +# Use an empty target to force running every time |
| 7 | +.PHONY: FORCE |
| 8 | +FORCE: |
| 9 | + |
| 10 | +# Quarto |
| 11 | +docs: FORCE ## [docs] Generate documentation |
| 12 | + @echo "📖 Generating documentation" |
| 13 | + quarto render |
| 14 | +docs-preview: FORCE ## [docs] Watch documentation |
| 15 | + @echo "📖 Watching documentation" |
| 16 | + quarto preview |
| 17 | + |
| 18 | +# Creating extensions |
| 19 | +DIR:= |
| 20 | +create-extension: ## [ext] Create extension folder |
| 21 | + @if [ -z "$(DIR)" ]; then \ |
| 22 | + echo 'Please provide a directory name using `make create-extension DIR="my_dir"'; \ |
| 23 | + exit 1; \ |
| 24 | + fi |
| 25 | + @# If the directory contains a slash, error |
| 26 | + @if echo $(DIR) | grep -q '/'; then \ |
| 27 | + echo 'Please provide a directory name without a slash'; \ |
| 28 | + exit 1; \ |
| 29 | + fi |
| 30 | + @# If the directory already exists, error |
| 31 | + @if [ -d "extensions/$(DIR)" ]; then \ |
| 32 | + echo 'Directory "extensions/$(DIR)" already exists'; \ |
| 33 | + exit 1; \ |
| 34 | + fi |
| 35 | + |
| 36 | + @echo "🔧 Creating directory: extensions/$(DIR)" |
| 37 | + @mkdir -p "extensions/$(DIR)" |
| 38 | + |
| 39 | + @echo "📝 Copying template files: $(ls -m _template)" |
| 40 | + @cp -r _template/* extensions/$(DIR) |
| 41 | + |
| 42 | + @echo "" |
| 43 | + @echo "⏳ Remaining Tasks:" |
| 44 | + @echo "- [ ] Copy in app files" |
| 45 | + @echo "- [ ] Create manifest.json" |
| 46 | + |
| 47 | + |
| 48 | +# build: FORCE ## [py] Build python package |
| 49 | +# @echo "🧳 Building python package" |
| 50 | +# @[ -d dist ] && rm -r dist || true |
| 51 | +# uv build |
| 52 | + |
| 53 | + |
| 54 | + |
| 55 | +help: FORCE ## Show help messages for make targets |
| 56 | + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; { \ |
| 57 | + printf "\033[32m%-18s\033[0m", $$1; \ |
| 58 | + if ($$2 ~ /^\[docs\]/) { \ |
| 59 | + printf "\033[34m[docs]\033[0m%s\n", substr($$2, 7); \ |
| 60 | + } else if ($$2 ~ /^\[py\]/) { \ |
| 61 | + printf " \033[33m[py]\033[0m%s\n", substr($$2, 5); \ |
| 62 | + } else if ($$2 ~ /^\[ext\]/) { \ |
| 63 | + printf " \033[35m[ext]\033[0m%s\n", substr($$2, 6); \ |
| 64 | + } else if ($$2 ~ /^\[r\]/) { \ |
| 65 | + printf " \033[31m[r]\033[0m%s\n", substr($$2, 4); \ |
| 66 | + } else { \ |
| 67 | + printf " %s\n", $$2; \ |
| 68 | + } \ |
| 69 | + }' |
0 commit comments