# Go parameters GOCMD = go GOBUILD = $(GOCMD) build GOCLEAN = $(GOCMD) clean GOTEST = $(GOCMD) test GOGET = $(GOCMD) get # SQLite database filename DB_FILE = db.sqlite3 # Directory containing migration SQL scripts MIGRATIONS_DIR = migrations # Build target build: $(GOBUILD) -o bin/server cmd/*.go # Run target run: build ./bin/server watch: build watchexec -w . -r make run # Clean target clean: $(GOCLEAN) rm -rf bin rm -f db.sqlite3 # Test target test: $(GOTEST) ./... # Get dependencies target deps: $(GOGET) -v ./... # Update dependencies target update: $(GOGET) -u -v ./... $(GOCMD) mod tidy # Migration target migrate: @echo "Migrating database $(DB_FILE) using SQL scripts in $(MIGRATIONS_DIR)" @for file in $(wildcard $(MIGRATIONS_DIR)/*.sql); do \ echo "Applying migration: $$file"; \ sqlite3 $(DB_FILE) < $$file; \ done # Default target default: build