Goondex/Makefile

65 lines
1.5 KiB
Makefile

.PHONY: help dev build run clean install-deps install-air test
# Default target
help:
@echo "Goondex Development Commands:"
@echo ""
@echo " make dev - Start development server with live reload (Air)"
@echo " make build - Build production binary"
@echo " make run - Run production binary"
@echo " make clean - Clean build artifacts"
@echo " make install-deps - Install all dependencies"
@echo " make install-air - Install Air for live reload"
@echo " make test - Run tests"
@echo ""
# Development with Air (live reload)
dev: install-air
air
# Build production binary
build:
@echo "Building Goondex..."
@mkdir -p bin
go build -o ./bin/goondex ./cmd/goondex
@echo "Built: ./bin/goondex"
# Run production build
run: build
./bin/goondex serve
# Clean build artifacts
clean:
@echo "Cleaning build artifacts..."
rm -rf tmp/
rm -rf bin/
rm -f build-errors.log
@echo "Cleaned!"
# Install all dependencies
install-deps: install-air
@echo "All dependencies installed!"
# Install Air for live reload
install-air:
@if ! command -v air >/dev/null 2>&1; then \
echo "Installing Air..."; \
go install github.com/air-verse/air@latest; \
echo "Air installed! Make sure ~/go/bin is in your PATH"; \
else \
echo "Air is already installed"; \
fi
# Run tests
test:
go test -v ./...
# Database migrations (if needed in future)
migrate-up:
@echo "Running migrations..."
# Add migration commands here
migrate-down:
@echo "Rolling back migrations..."
# Add rollback commands here