FossilRepo

fossilrepo / run.sh
Blame History Raw 79 lines
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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button