Makefile
Ref: Size: 1.5 KiB
CARGO := cargo PROFILE ?= debug BIN := git-collab SERVER_BIN := git-collab-server PREFIX ?= /usr/local # --- Building blocks --- .PHONY: fmt check clippy test build install clean fmt: $(CARGO) fmt check: $(CARGO) check clippy: $(CARGO) clippy -- -D warnings test: $(CARGO) test build: $(CARGO) build $(if $(filter release,$(PROFILE)),--release,) # --- Composites --- .PHONY: lint ci lint: fmt check clippy ci: lint test build # --- Install --- install: PROFILE := release install: build install-man install -Dm755 target/release/$(BIN) $(PREFIX)/bin/$(BIN) install -Dm755 target/release/$(SERVER_BIN) $(PREFIX)/bin/$(SERVER_BIN) uninstall: rm -f $(PREFIX)/bin/$(BIN) $(PREFIX)/bin/$(SERVER_BIN) clean: clean-man $(CARGO) clean # --- Man pages --- MAN_DIR := man/man1 .PHONY: man install-man clean-man man: MAN_OUT_DIR=$(MAN_DIR) $(CARGO) build @echo "Man pages written to $(MAN_DIR)/" install-man: man install -d $(PREFIX)/share/man/man1 install -m644 $(MAN_DIR)/*.1 $(PREFIX)/share/man/man1/ clean-man: rm -rf man/ # --- Docker --- REGISTRY := registry.a73x.sh IMAGE := $(REGISTRY)/git-collab-server TAG ?= 0.0.1 .PHONY: docker docker-push docker: docker build -t $(IMAGE):$(TAG) . docker-push: docker docker push $(IMAGE):$(TAG) # --- Dev helpers --- .PHONY: run serve dev dashboard run: $(CARGO) run -- $(ARGS) serve: $(CARGO) run --bin $(SERVER_BIN) -- $(ARGS) dev: fmt $(CARGO) run -- $(ARGS) dashboard: fmt $(CARGO) run -- dashboard