65 lines
1.5 KiB
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
|