binary := "huntsman"
version := `git describe --tags --always 2>/dev/null || echo dev`
commit := `git rev-parse --short HEAD 2>/dev/null || echo none`
date := `date -u +%Y-%m-%dT%H:%M:%SZ`

ldflags := "-X main.version=" + version + " -X main.commit=" + commit + " -X main.date=" + date

default:
    @just --list

build:
    go build -ldflags "{{ldflags}}" -o {{binary}} ./cmd/server

run: build
    ./{{binary}} -config config.yaml

dev:
    go run ./cmd/server -config config.yaml

test:
    go test -race ./...

lint:
    golangci-lint run ./...

fmt:
    gofmt -s -w .
    goimports -w .

tidy:
    go mod tidy

docker-build:
    docker build -t {{binary}}:{{version}} .

docker-run:
    docker compose up -d --build

docker-stop:
    docker compose down
