mirror of
https://codeberg.org/VnPower/PixivFE
synced 2024-12-06 19:16:23 +01:00
54 lines
1.4 KiB
Makefile
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"
|