Files
PixivFE/Makefile
T
2024-09-17 00:18:55 +10:00

54 lines
1.4 KiB
Makefile

# Makefile for PixivFE
# Variables
BINARY_NAME=pixivfe
TARGETOS ?= $(shell go env GOOS)
TARGETARCH ?= $(shell go env GOARCH)
# Include environment variables from .env if it exists
-include .env
.PHONY: all fmt build test run clean install-pre-commit help
all: fmt build test
fmt:
@echo "Formatting Go code..."
go fmt ./...
build:
@echo "Building $(BINARY_NAME)..."
go mod download
CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -v -ldflags="-extldflags=-static" -tags netgo -o $(BINARY_NAME)
test:
@echo "Running tests..."
go test ./server/template
run: build
@echo "Running $(BINARY_NAME)..."
./$(BINARY_NAME)
clean:
@echo "Cleaning up..."
rm -f $(BINARY_NAME)
# Additional target to install test script as pre-commit hook
install-pre-commit:
@echo "Installing pre-commit hook..."
echo '#!/bin/sh' > .git/hooks/pre-commit
echo 'go test ./server/template' >> .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
# Help target
help:
@echo "Available targets:"
@echo " all - Run fmt, build, and test"
@echo " fmt - Format Go code"
@echo " build - Build the binary"
@echo " test - Run tests"
@echo " run - Build and run the binary"
@echo " clean - Remove the binary"
@echo " install-pre-commit - Install testing pre-commit hook"
@echo " help - Show this help message"