|
1
|
#!/usr/bin/env bash |
|
2
|
set -euo pipefail |
|
3
|
|
|
4
|
# Fossilrepo — Django HTMX |
|
5
|
# Usage: ./run.sh [command] |
|
6
|
|
|
7
|
COMPOSE_FILE="" |
|
8
|
|
|
9
|
if [ -f "docker-compose.yml" ]; then |
|
10
|
COMPOSE_FILE="docker-compose.yml" |
|
11
|
elif [ -f "docker-compose.yaml" ]; then |
|
12
|
COMPOSE_FILE="docker-compose.yaml" |
|
13
|
fi |
|
14
|
|
|
15
|
compose() { |
|
16
|
if [ -n "$COMPOSE_FILE" ]; then |
|
17
|
docker compose -f "$COMPOSE_FILE" "$@" |
|
18
|
else |
|
19
|
echo "No docker-compose file found" |
|
20
|
exit 1 |
|
21
|
fi |
|
22
|
} |
|
23
|
|
|
24
|
case "${1:-help}" in |
|
25
|
up|start) |
|
26
|
compose up -d --build |
|
27
|
echo "Waiting for services..." |
|
28
|
sleep 5 |
|
29
|
compose exec -T backend python manage.py migrate --noinput 2>&1 | tail -3 |
|
30
|
echo "" |
|
31
|
echo "Services running. Check status with: ./run.sh status" |
|
32
|
;; |
|
33
|
down|stop) |
|
34
|
compose down |
|
35
|
;; |
|
36
|
restart) |
|
37
|
compose down |
|
38
|
compose up -d --build |
|
39
|
;; |
|
40
|
status|ps) |
|
41
|
compose ps |
|
42
|
;; |
|
43
|
logs) |
|
44
|
compose logs -f "${2:-}" |
|
45
|
;; |
|
46
|
seed) |
|
47
|
compose exec -T backend python manage.py migrate --noinput 2>&1 | tail -3 |
|
48
|
compose exec -T backend python manage.py seed |
|
49
|
;; |
|
50
|
test) |
|
51
|
compose exec backend python -m pytest --cov --cov-report=term-missing -v |
|
52
|
;; |
|
53
|
lint) |
|
54
|
compose exec backend python -m ruff check . && compose exec backend python -m ruff format --check . |
|
55
|
;; |
|
56
|
shell) |
|
57
|
compose exec backend bash |
|
58
|
;; |
|
59
|
migrate) |
|
60
|
compose exec backend python manage.py migrate |
|
61
|
;; |
|
62
|
help|*) |
|
63
|
echo "Usage: ./run.sh <command>" |
|
64
|
echo "" |
|
65
|
echo "Commands:" |
|
66
|
echo " up, start Start all services" |
|
67
|
echo " down, stop Stop all services" |
|
68
|
echo " restart Restart all services" |
|
69
|
echo " status, ps Show service status" |
|
70
|
echo " logs [svc] Tail logs (optionally for one service)" |
|
71
|
echo " seed Seed the database" |
|
72
|
echo " test Run tests" |
|
73
|
echo " lint Run linters" |
|
74
|
echo " shell Open a shell in the backend" |
|
75
|
echo " migrate Run database migrations" |
|
76
|
echo " help Show this help" |
|
77
|
;; |
|
78
|
esac |
|
79
|
|