generated from Patagia/template-nix
112 lines
2.6 KiB
Makefile
112 lines
2.6 KiB
Makefile
set shell := ["/usr/bin/env", "bash", "-euo", "pipefail", "-c"]
|
|
|
|
[private]
|
|
default:
|
|
@just --choose
|
|
|
|
# Run controller
|
|
[group('controller')]
|
|
run-controller $RUST_LOG="debug,h2=info,hyper_util=info,tower=info":
|
|
cargo run --package patagia-controller -- --log-stderr
|
|
|
|
# Run controller local development
|
|
[group('controller')]
|
|
dev-controller: dev-controller-db-migrate
|
|
watchexec --clear --restart --stop-signal INT --debounce 300ms -- just run-controller
|
|
|
|
# Run agent
|
|
run-agent $RUST_LOG="debug,h2=info,hyper_util=info,tower=info":
|
|
cargo run --package patagia-agent
|
|
|
|
# Run agent local development
|
|
dev-agent:
|
|
watchexec --clear --restart --stop-signal INT --debounce 300ms -- just run-agent
|
|
|
|
# Lint all source code
|
|
lint:
|
|
cargo clippy
|
|
|
|
# Format all source code
|
|
fmt:
|
|
nix fmt
|
|
|
|
# Update all dependencies
|
|
update: update-nix update-rust-deps
|
|
|
|
# Update rust dependencies
|
|
update-rust-deps:
|
|
cargo upgrade --recursive
|
|
cargo update --recursive
|
|
|
|
# Update nix flake packages
|
|
update-nix:
|
|
nix flake update
|
|
|
|
# Find unused dependencies with cargo machete
|
|
machete:
|
|
cargo machete
|
|
|
|
# Generate OpenAPI spec
|
|
open-api:
|
|
cargo xtask open-api
|
|
|
|
# Update OpenAPI spec
|
|
gen-open-api:
|
|
cargo xtask open-api > api.json
|
|
|
|
# Run all tests
|
|
check: check-nix
|
|
|
|
# check-nix
|
|
check-nix:
|
|
nix flake check
|
|
|
|
# Run PostgreSQL for development and testing
|
|
[group('controller')]
|
|
dev-postgres:
|
|
#!/usr/bin/env sh
|
|
if podman ps --filter "name=patagia-postgres" --filter "status=running" -q | grep -q .; then
|
|
exit 0
|
|
fi
|
|
mkdir -p "${XDG_RUNTIME_DIR}/patagia-postgres"
|
|
podman volume exists patagia-postgres || podman volume create patagia-postgres
|
|
podman run \
|
|
--detach \
|
|
--replace \
|
|
--name patagia-postgres \
|
|
--env POSTGRES_DB=patagia \
|
|
--env POSTGRES_USER=patagia \
|
|
--env POSTGRES_PASSWORD=swordfish \
|
|
--volume patagia-postgres:/var/lib/postgresql/data \
|
|
--volume "${XDG_RUNTIME_DIR}/patagia-postgres:/var/run/postgresql" \
|
|
docker.io/postgres:17
|
|
sleep 0.3
|
|
|
|
# Clean up PostgreSQL data
|
|
[group('controller')]
|
|
dev-postgres-clean:
|
|
podman rm -f patagia-postgres || true
|
|
podman volume rm patagia-postgres || true
|
|
|
|
# Connect to PostgreSQL with psql
|
|
[group('controller')]
|
|
dev-postgres-psql:
|
|
podman exec -it patagia-postgres psql -U patagia
|
|
|
|
[group('controller')]
|
|
[working-directory: 'controller']
|
|
dev-controller-db-migrate: dev-postgres
|
|
cargo sqlx migrate run
|
|
|
|
[group('controller')]
|
|
[working-directory: 'controller']
|
|
dev-controller-db-reset:
|
|
cargo sqlx db reset -y
|
|
|
|
[group('controller')]
|
|
[working-directory: 'controller']
|
|
gen-controller-sqlx-prepare:
|
|
cargo sqlx prepare
|
|
|
|
gen: gen-open-api gen-controller-sqlx-prepare fmt
|
|
|