BIN = axiom-fullstack SRC = $(wildcard *.go) GO = $(shell which go) DOTENV = .env TEMPLATE_SRC = $(shell find templates -type f) STATIC_SRC = $(shell find static -type f) MIN_DST = min TEMPLATE_DST = $(MIN)/views STATIC_DST = $(MIN)/static all: $(BIN) $(BIN): $(SRC) $(TEMPLATE_DST) $(STATIC_DST) @echo "๐Ÿ”จ Building binary..." @$(GO) build -o $(BIN) $(TEMPLATE_DST): $(TEMPLATE_SRC) scripts/minify.go @echo "๐ŸŽจ Minifying templates..." @$(GO) run scripts/minify.go -src=templates -dst=$(TEMPLATE_DST) @touch $@ $(STATIC_DST): $(STATIC_SRC) scripts/minify.go @echo "๐ŸŽจ Minifying static files..." @$(GO) run scripts/minify.go -src=static -dst=$(STATIC_DST) @touch $@ run: $(BIN) $(DOTENV) datadir @env $(shell cat $(DOTENV) | xargs) ./$(BIN) $(DOTENV): @cp .env.example $@ datadir: $(DOTENV) @APP_DATA_DIR=$$(grep '^APP_DATA_DIR=' $(DOTENV) | cut -d '=' -f2); \ if [ -n "$$APP_DATA_DIR" ]; then mkdir -p "$$APP_DATA_DIR"; fi clean: @echo "๐Ÿงน Cleaning..." rm -rf $(BIN) $(MIN_DST)