.PHONY: build run test tidy lint docker hash-password nidusctl web-deps web-css templ-generate ## build: compile the binary build: go build -o bin/davserver ./cmd/server go build -o bin/nidusctl ./tools/nidusctl ## run: run the server locally run: build ./bin/davserver -config config.yaml ## test: run all tests test: go test ./... -v -race ## tidy: tidy go modules tidy: go mod tidy ## lint: run golangci-lint lint: golangci-lint run ./... ## docker: build Docker image docker: docker build -t davserver:latest . ## compose: start with Docker Compose compose: docker compose up --build ## hash-password: generate bcrypt hash for a password ## Usage: make hash-password PWD=mysecret hash-password: @go run -v ./tools/hashpwd $(PWD) ## nidusctl: build and run the sharing-grant admin CLI ## Usage: make nidusctl ARGS="calendar share alice work bob write" nidusctl: build ./bin/nidusctl -config config.yaml $(ARGS) ## templ-generate: regenerate *_templ.go files from internal/web/templates/*.templ templ-generate: templ generate ## web-deps: install the Tailwind CLI (needed once, or after web/package.json changes) web-deps: cd web && npm install ## web-css: rebuild the compiled/embedded Tailwind CSS (web/static/app.css) ## Run this after editing any .templ file or web/input.css. web-css: templ-generate cd web && npx @tailwindcss/cli -i ./input.css -o ./static/app.css --minify