[tools]
go = "1.26.5"
python = "latest"

[tasks.server-run]
description = "Run the Go server"
dir = "apps/server"
run = "CGO_ENABLED=1 go run ./cmd/cairnquire"

[tasks.server-build]
description = "Build the Go server"
dir = "apps/server"
run = "mkdir -p bin && CGO_ENABLED=1 go build -trimpath -o bin/cairnquire ./cmd/cairnquire"

[tasks.server-test]
description = "Run Go tests"
dir = "apps/server"
run = "CGO_ENABLED=1 go test ./..."

[tasks.dev-server]
description = "Run the Go server with air"
dir = "apps/server"
run = "air"

[tasks.dev]
description = "Start the Go server with live reload"
depends = ["dev-server"]
run = "true"

[tasks.docker-build]
description = "Build the Docker image"
run = "docker build -t cairnquire:dev ."

[tasks.fmt]
description = "Run format checks"
run = '''
cd apps/server
go fmt ./...
'''

[tasks.ci]
description = "Run the core CI checks"
depends = ["server-test", "server-build"]
run = "true"

[tasks.vulncheck]
description = "Run govulncheck"
dir = "apps/server"
run = "go run golang.org/x/vuln/cmd/govulncheck@v1.6.0 ./..."
