Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
73 lines (63 loc) · 2.02 KB
/
Copy pathMakefile
File metadata and controls
73 lines (63 loc) · 2.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# plann Makefile
.PHONY: help install dev test lint clean uninstall
PYTHON ?= python3
VENV = venv
help:
@echo "plann - Command-line interface to calendars"
@echo ""
@echo "Installation:"
@echo " sudo make install Install system-wide"
@echo " make install Install for current user"
@echo " make uninstall Uninstall plann"
@echo ""
@echo "Development:"
@echo " make dev Install in development mode"
@echo " make test Run tests"
@echo " make lint Run linter"
@echo " make clean Clean build artifacts"
# Create virtual environment
venv:
@if [ ! -d "$(VENV)" ]; then \
echo "Creating virtual environment..."; \
$(PYTHON) -m venv $(VENV); \
$(VENV)/bin/pip install --upgrade pip; \
fi
# Install package: auto-detects root, uv, pipx, or falls back to pip --user
install:
@if [ "$$(id -u)" = "0" ]; then \
echo "Installing plann system-wide..."; \
pip install .; \
elif command -v uv >/dev/null 2>&1; then \
echo "Installing with uv..."; \
uv tool install .; \
elif command -v pipx >/dev/null 2>&1; then \
echo "Installing with pipx..."; \
pipx install .; \
else \
echo "Tip: install uv or pipx for isolated installs (pacman -S uv, apt install pipx)"; \
PIP_BREAK_SYSTEM_PACKAGES=1 pip install --user .; \
fi
# Uninstall plann
uninstall:
@if [ "$$(id -u)" = "0" ]; then \
pip uninstall --break-system-packages -y plann; \
else \
pip uninstall -y plann; \
fi
# Install in development mode
dev:
@echo "Installing in development mode..."
@PIP_BREAK_SYSTEM_PACKAGES=1 pip install -e ".[dev]"
@echo ""
@echo "Installed! Run: plann --help"
# Run tests
test:
@python -m pytest tests/ -v
# Run linter
lint:
@python -m ruff check .
# Clean build artifacts
clean:
@rm -rf $(VENV) build dist *.egg-info .pytest_cache .ruff_cache
@find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true
@find . -type f -name "*.pyc" -delete 2>/dev/null || true