62 lines
1.6 KiB
Makefile
62 lines
1.6 KiB
Makefile
.PHONY: build run test tidy lint docker hash-password nidusctl web-deps web-css web-ts web-assets 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
|
|
|
|
## 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 $(ARGS)
|
|
|
|
## templ-generate: regenerate *_templ.go files from internal/web/templates/*.templ
|
|
templ-generate:
|
|
templ generate
|
|
|
|
## web-deps: install the Tailwind CLI + TypeScript compiler (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
|
|
|
|
## web-ts: compile web/ts/*.ts to web/static/*.js
|
|
## Run this after editing any .ts file.
|
|
web-ts:
|
|
cd web && npx tsc -p tsconfig.json
|
|
|
|
## web-assets: rebuild everything under web/static/ (CSS + JS)
|
|
web-assets: web-css web-ts
|