default: run

prepare:
	cargo sqlx prepare

migrate:
	sqlx migrate run

format:
	cargo fmt --all

format-check:
	cargo fmt --check --all

build:
	cargo auditable build

build-release:
	cargo auditable build --release

run: docker-start
	cargo auditable run

run-no-docker:
	cargo auditable run

lint:
	cargo clippy --all-targets

msrv:
	cargo msrv verify

release-build:
	cargo auditable build --release

release-run:
	cargo auditable run --release

audit: build
	cargo audit bin target/debug/gege-jdr-backend

audit-release: build-release
	cargo audit bin target/release/gege-jdr-backend

test:
	cargo test

coverage:
	mkdir -p coverage
	cargo tarpaulin --config .tarpaulin.local.toml

coverage-ci:
	mkdir -p coverage
	cargo tarpaulin --config .tarpaulin.ci.toml

check-all: format-check lint msrv coverage audit

docker-build:
	nix build .#docker

docker-start:
	docker compose -f docker/compose.dev.yml up -d

docker-stop:
	docker compose -f docker/compose.dev.yml down

docker-logs:
	docker compose -f docker/compose.dev.yml logs -f

## Local Variables:
## mode: makefile
## End: