343 lines
17 KiB
Makefile
343 lines
17 KiB
Makefile
# Termdoku - Makefile for cross-platform builds
|
|
# Project configuration
|
|
BINARY_NAME=termdoku
|
|
VERSION?=1.0.1
|
|
BUILD_DIR=dist
|
|
CMD_DIR=cmd/termdoku
|
|
MAIN_FILE=$(CMD_DIR)/main.go
|
|
|
|
GOCMD=go
|
|
GOBUILD=$(GOCMD) build
|
|
GOCLEAN=$(GOCMD) clean
|
|
GOTEST=$(GOCMD) test
|
|
GOMOD=$(GOCMD) mod
|
|
GOVET=$(GOCMD) vet
|
|
GOFMT=$(GOCMD) fmt
|
|
|
|
LDFLAGS=-ldflags "-s -w -X main.version=$(VERSION)"
|
|
|
|
CURRENT_OS:=$(shell go env GOOS)
|
|
CURRENT_ARCH:=$(shell go env GOARCH)
|
|
|
|
COLOR_RESET=\033[0m
|
|
COLOR_BOLD=\033[1m
|
|
COLOR_DIM=\033[2m
|
|
COLOR_RED=\033[31m
|
|
COLOR_GREEN=\033[32m
|
|
COLOR_YELLOW=\033[33m
|
|
COLOR_BLUE=\033[34m
|
|
COLOR_MAGENTA=\033[35m
|
|
COLOR_CYAN=\033[36m
|
|
COLOR_WHITE=\033[37m
|
|
|
|
SYMBOL_CHECK=✓
|
|
SYMBOL_CROSS=✗
|
|
SYMBOL_ARROW=→
|
|
SYMBOL_STAR=★
|
|
|
|
.PHONY: all build clean test vet fmt help
|
|
.PHONY: build-linux build-darwin build-windows build-freebsd
|
|
.PHONY: build-all build-linux-all build-darwin-all build-windows-all
|
|
.PHONY: install deps run coverage benchmark lint check watch dev
|
|
.PHONY: release version info size
|
|
|
|
all: clean build
|
|
|
|
## help: Display this help message
|
|
help:
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)╔═══════════════════════════════════════════════════════════╗$(COLOR_RESET)"
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)║$(COLOR_RESET) $(COLOR_BOLD)$(COLOR_MAGENTA)$(SYMBOL_STAR) Termdoku - Makefile Targets $(SYMBOL_STAR)$(COLOR_RESET) $(COLOR_BOLD)$(COLOR_CYAN)║$(COLOR_RESET)"
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)╚═══════════════════════════════════════════════════════════╝$(COLOR_RESET)"
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_WHITE)$(SYMBOL_ARROW) Main Targets:$(COLOR_RESET)"
|
|
@echo " $(COLOR_GREEN)$(SYMBOL_CHECK) build$(COLOR_RESET) Build for current platform ($(COLOR_CYAN)$(CURRENT_OS)/$(CURRENT_ARCH)$(COLOR_RESET))"
|
|
@echo " $(COLOR_GREEN)$(SYMBOL_CHECK) build-all$(COLOR_RESET) Build for all supported platforms"
|
|
@echo " $(COLOR_GREEN)$(SYMBOL_CHECK) run$(COLOR_RESET) Run the application"
|
|
@echo " $(COLOR_GREEN)$(SYMBOL_CHECK) dev$(COLOR_RESET) Run in development mode (with auto-rebuild)"
|
|
@echo " $(COLOR_GREEN)$(SYMBOL_CHECK) clean$(COLOR_RESET) Remove build artifacts"
|
|
@echo " $(COLOR_GREEN)$(SYMBOL_CHECK) install$(COLOR_RESET) Install to GOPATH/bin"
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_WHITE)$(SYMBOL_ARROW) Platform-Specific Builds:$(COLOR_RESET)"
|
|
@echo " $(COLOR_YELLOW)$(SYMBOL_ARROW) build-linux$(COLOR_RESET) Build for Linux amd64"
|
|
@echo " $(COLOR_YELLOW)$(SYMBOL_ARROW) build-linux-all$(COLOR_RESET) Build for all Linux architectures"
|
|
@echo " $(COLOR_YELLOW)$(SYMBOL_ARROW) build-darwin$(COLOR_RESET) Build for macOS amd64"
|
|
@echo " $(COLOR_YELLOW)$(SYMBOL_ARROW) build-darwin-all$(COLOR_RESET) Build for all macOS architectures"
|
|
@echo " $(COLOR_YELLOW)$(SYMBOL_ARROW) build-windows$(COLOR_RESET) Build for Windows amd64"
|
|
@echo " $(COLOR_YELLOW)$(SYMBOL_ARROW) build-windows-all$(COLOR_RESET) Build for all Windows architectures"
|
|
@echo " $(COLOR_YELLOW)$(SYMBOL_ARROW) build-freebsd$(COLOR_RESET) Build for FreeBSD amd64"
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_WHITE)$(SYMBOL_ARROW) Development & Quality:$(COLOR_RESET)"
|
|
@echo " $(COLOR_BLUE)$(SYMBOL_ARROW) deps$(COLOR_RESET) Download and tidy dependencies"
|
|
@echo " $(COLOR_BLUE)$(SYMBOL_ARROW) fmt$(COLOR_RESET) Format code with gofmt"
|
|
@echo " $(COLOR_BLUE)$(SYMBOL_ARROW) vet$(COLOR_RESET) Run go vet for code analysis"
|
|
@echo " $(COLOR_BLUE)$(SYMBOL_ARROW) lint$(COLOR_RESET) Run golangci-lint (if installed)"
|
|
@echo " $(COLOR_BLUE)$(SYMBOL_ARROW) check$(COLOR_RESET) Run fmt, vet, and lint"
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_WHITE)$(SYMBOL_ARROW) Release & Info:$(COLOR_RESET)"
|
|
@echo " $(COLOR_MAGENTA)$(SYMBOL_ARROW) release$(COLOR_RESET) Create release builds with checksums"
|
|
@echo " $(COLOR_MAGENTA)$(SYMBOL_ARROW) version$(COLOR_RESET) Display version information"
|
|
@echo " $(COLOR_MAGENTA)$(SYMBOL_ARROW) info$(COLOR_RESET) Display project information"
|
|
@echo " $(COLOR_MAGENTA)$(SYMBOL_ARROW) size$(COLOR_RESET) Show binary sizes"
|
|
@echo ""
|
|
@echo "$(COLOR_DIM)Run 'make <target>' to execute a target$(COLOR_RESET)"
|
|
@echo ""
|
|
|
|
## build: Build binary for current platform
|
|
build:
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)┌───────────────────────────────────────────────────────────┐$(COLOR_RESET)"
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)│$(COLOR_RESET) $(COLOR_BOLD)$(COLOR_GREEN)Building $(BINARY_NAME)$(COLOR_RESET) $(COLOR_BOLD)$(COLOR_CYAN)│$(COLOR_RESET)"
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)└───────────────────────────────────────────────────────────┘$(COLOR_RESET)"
|
|
@echo "$(COLOR_CYAN)$(SYMBOL_ARROW) Target Platform:$(COLOR_RESET) $(COLOR_YELLOW)$(CURRENT_OS)/$(CURRENT_ARCH)$(COLOR_RESET)"
|
|
@echo "$(COLOR_CYAN)$(SYMBOL_ARROW) Version:$(COLOR_RESET) $(COLOR_YELLOW)$(VERSION)$(COLOR_RESET)"
|
|
@echo "$(COLOR_CYAN)$(SYMBOL_ARROW) Output:$(COLOR_RESET) $(COLOR_YELLOW)$(BUILD_DIR)/$(BINARY_NAME)$(COLOR_RESET)"
|
|
@echo ""
|
|
@mkdir -p $(BUILD_DIR)
|
|
@echo "$(COLOR_DIM)Compiling...$(COLOR_RESET)"
|
|
@$(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME) $(MAIN_FILE)
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_GREEN)$(SYMBOL_CHECK) Build complete!$(COLOR_RESET)"
|
|
@ls -lh $(BUILD_DIR)/$(BINARY_NAME) | awk '{print "$(COLOR_DIM)Size: " $$5 "$(COLOR_RESET)"}'
|
|
@echo ""
|
|
|
|
## run: Run the application
|
|
run:
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_MAGENTA)$(SYMBOL_STAR) Running $(BINARY_NAME)...$(COLOR_RESET)"
|
|
@echo ""
|
|
@$(GOCMD) run $(MAIN_FILE)
|
|
|
|
## clean: Remove build artifacts
|
|
clean:
|
|
@echo ""
|
|
@echo "$(COLOR_YELLOW)$(SYMBOL_ARROW) Cleaning build artifacts...$(COLOR_RESET)"
|
|
@$(GOCLEAN)
|
|
@rm -rf $(BUILD_DIR)
|
|
@echo "$(COLOR_GREEN)$(SYMBOL_CHECK) Clean complete$(COLOR_RESET)"
|
|
@echo ""
|
|
|
|
## fmt: Format code
|
|
fmt:
|
|
@echo ""
|
|
@echo "$(COLOR_BLUE)$(SYMBOL_ARROW) Formatting code...$(COLOR_RESET)"
|
|
@$(GOFMT) ./...
|
|
@echo "$(COLOR_GREEN)$(SYMBOL_CHECK) Format complete$(COLOR_RESET)"
|
|
@echo ""
|
|
|
|
## deps: Download dependencies
|
|
deps:
|
|
@echo ""
|
|
@echo "$(COLOR_BLUE)$(SYMBOL_ARROW) Downloading dependencies...$(COLOR_RESET)"
|
|
@$(GOMOD) download
|
|
@$(GOMOD) tidy
|
|
@echo "$(COLOR_GREEN)$(SYMBOL_CHECK) Dependencies updated$(COLOR_RESET)"
|
|
@echo ""
|
|
|
|
## install: Install binary to GOPATH/bin
|
|
install:
|
|
@echo ""
|
|
@echo "$(COLOR_GREEN)$(SYMBOL_ARROW) Installing $(BINARY_NAME)...$(COLOR_RESET)"
|
|
@$(GOCMD) install $(LDFLAGS) $(CMD_DIR)
|
|
@echo "$(COLOR_GREEN)$(SYMBOL_CHECK) Installed to $(COLOR_CYAN)$(shell go env GOPATH)/bin/$(BINARY_NAME)$(COLOR_RESET)"
|
|
@echo ""
|
|
|
|
# ============================================================================
|
|
# Platform-specific builds
|
|
# ============================================================================
|
|
|
|
## build-linux: Build for Linux amd64
|
|
build-linux:
|
|
@echo ""
|
|
@echo "$(COLOR_CYAN)$(SYMBOL_ARROW) Building for $(COLOR_YELLOW)Linux amd64$(COLOR_RESET)..."
|
|
@mkdir -p $(BUILD_DIR)
|
|
@GOOS=linux GOARCH=amd64 $(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-linux-amd64 $(MAIN_FILE)
|
|
@echo "$(COLOR_GREEN)$(SYMBOL_CHECK) Built: $(COLOR_DIM)$(BUILD_DIR)/$(BINARY_NAME)-linux-amd64$(COLOR_RESET)"
|
|
@echo ""
|
|
|
|
## build-linux-all: Build for all Linux architectures
|
|
build-linux-all:
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)$(SYMBOL_ARROW) Building for all Linux architectures...$(COLOR_RESET)"
|
|
@mkdir -p $(BUILD_DIR)
|
|
@echo " $(COLOR_DIM)Building amd64...$(COLOR_RESET)"
|
|
@GOOS=linux GOARCH=amd64 $(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-linux-amd64 $(MAIN_FILE)
|
|
@echo " $(COLOR_DIM)Building arm64...$(COLOR_RESET)"
|
|
@GOOS=linux GOARCH=arm64 $(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-linux-arm64 $(MAIN_FILE)
|
|
@echo " $(COLOR_DIM)Building 386...$(COLOR_RESET)"
|
|
@GOOS=linux GOARCH=386 $(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-linux-386 $(MAIN_FILE)
|
|
@echo " $(COLOR_DIM)Building arm...$(COLOR_RESET)"
|
|
@GOOS=linux GOARCH=arm $(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-linux-arm $(MAIN_FILE)
|
|
@echo "$(COLOR_GREEN)$(SYMBOL_CHECK) Built all Linux binaries$(COLOR_RESET)"
|
|
@echo ""
|
|
|
|
## build-darwin: Build for macOS amd64
|
|
build-darwin:
|
|
@echo ""
|
|
@echo "$(COLOR_CYAN)$(SYMBOL_ARROW) Building for $(COLOR_YELLOW)macOS amd64$(COLOR_RESET)..."
|
|
@mkdir -p $(BUILD_DIR)
|
|
@GOOS=darwin GOARCH=amd64 $(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-darwin-amd64 $(MAIN_FILE)
|
|
@echo "$(COLOR_GREEN)$(SYMBOL_CHECK) Built: $(COLOR_DIM)$(BUILD_DIR)/$(BINARY_NAME)-darwin-amd64$(COLOR_RESET)"
|
|
@echo ""
|
|
|
|
## build-darwin-all: Build for all macOS architectures
|
|
build-darwin-all:
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)$(SYMBOL_ARROW) Building for all macOS architectures...$(COLOR_RESET)"
|
|
@mkdir -p $(BUILD_DIR)
|
|
@echo " $(COLOR_DIM)Building amd64...$(COLOR_RESET)"
|
|
@GOOS=darwin GOARCH=amd64 $(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-darwin-amd64 $(MAIN_FILE)
|
|
@echo " $(COLOR_DIM)Building arm64...$(COLOR_RESET)"
|
|
@GOOS=darwin GOARCH=arm64 $(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-darwin-arm64 $(MAIN_FILE)
|
|
@echo "$(COLOR_GREEN)$(SYMBOL_CHECK) Built all macOS binaries$(COLOR_RESET)"
|
|
@echo ""
|
|
|
|
## build-windows: Build for Windows amd64
|
|
build-windows:
|
|
@echo ""
|
|
@echo "$(COLOR_CYAN)$(SYMBOL_ARROW) Building for $(COLOR_YELLOW)Windows amd64$(COLOR_RESET)..."
|
|
@mkdir -p $(BUILD_DIR)
|
|
@GOOS=windows GOARCH=amd64 $(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-windows-amd64.exe $(MAIN_FILE)
|
|
@echo "$(COLOR_GREEN)$(SYMBOL_CHECK) Built: $(COLOR_DIM)$(BUILD_DIR)/$(BINARY_NAME)-windows-amd64.exe$(COLOR_RESET)"
|
|
@echo ""
|
|
|
|
## build-windows-all: Build for all Windows architectures
|
|
build-windows-all:
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)$(SYMBOL_ARROW) Building for all Windows architectures...$(COLOR_RESET)"
|
|
@mkdir -p $(BUILD_DIR)
|
|
@echo " $(COLOR_DIM)Building amd64...$(COLOR_RESET)"
|
|
@GOOS=windows GOARCH=amd64 $(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-windows-amd64.exe $(MAIN_FILE)
|
|
@echo " $(COLOR_DIM)Building arm64...$(COLOR_RESET)"
|
|
@GOOS=windows GOARCH=arm64 $(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-windows-arm64.exe $(MAIN_FILE)
|
|
@echo " $(COLOR_DIM)Building 386...$(COLOR_RESET)"
|
|
@GOOS=windows GOARCH=386 $(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-windows-386.exe $(MAIN_FILE)
|
|
@echo "$(COLOR_GREEN)$(SYMBOL_CHECK) Built all Windows binaries$(COLOR_RESET)"
|
|
@echo ""
|
|
|
|
## build-freebsd: Build for FreeBSD amd64
|
|
build-freebsd:
|
|
@echo ""
|
|
@echo "$(COLOR_CYAN)$(SYMBOL_ARROW) Building for $(COLOR_YELLOW)FreeBSD amd64$(COLOR_RESET)..."
|
|
@mkdir -p $(BUILD_DIR)
|
|
@GOOS=freebsd GOARCH=amd64 $(GOBUILD) $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-freebsd-amd64 $(MAIN_FILE)
|
|
@echo "$(COLOR_GREEN)$(SYMBOL_CHECK) Built: $(COLOR_DIM)$(BUILD_DIR)/$(BINARY_NAME)-freebsd-amd64$(COLOR_RESET)"
|
|
@echo ""
|
|
|
|
## build-all: Build for all major platforms
|
|
build-all: build-linux-all build-darwin-all build-windows-all build-freebsd
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_GREEN)╔═══════════════════════════════════════════════════════════╗$(COLOR_RESET)"
|
|
@echo "$(COLOR_BOLD)$(COLOR_GREEN)║$(COLOR_RESET) $(COLOR_BOLD)$(SYMBOL_CHECK) All builds complete!$(COLOR_RESET) $(COLOR_BOLD)$(COLOR_GREEN)║$(COLOR_RESET)"
|
|
@echo "$(COLOR_BOLD)$(COLOR_GREEN)╚═══════════════════════════════════════════════════════════╝$(COLOR_RESET)"
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)Build Artifacts:$(COLOR_RESET)"
|
|
@ls -lh $(BUILD_DIR) | tail -n +2 | awk '{print " $(COLOR_YELLOW)" $$9 "$(COLOR_RESET) $(COLOR_DIM)(" $$5 ")$(COLOR_RESET)"}'
|
|
@echo ""
|
|
|
|
# ============================================================================
|
|
# Release targets
|
|
# ============================================================================
|
|
|
|
## release: Create release builds with checksums
|
|
release: clean build-all
|
|
@echo ""
|
|
@echo "$(COLOR_MAGENTA)$(SYMBOL_ARROW) Generating checksums...$(COLOR_RESET)"
|
|
@cd $(BUILD_DIR) && sha256sum * > checksums.txt
|
|
@echo "$(COLOR_GREEN)$(SYMBOL_CHECK) Release build complete with checksums$(COLOR_RESET)"
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)Checksums:$(COLOR_RESET)"
|
|
@cat $(BUILD_DIR)/checksums.txt | awk '{print " $(COLOR_DIM)" $$1 "$(COLOR_RESET) $(COLOR_YELLOW)" $$2 "$(COLOR_RESET)"}'
|
|
@echo ""
|
|
|
|
# ============================================================================
|
|
# Development & Quality targets
|
|
# ============================================================================
|
|
|
|
## benchmark: Run benchmarks
|
|
benchmark:
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_YELLOW)$(SYMBOL_ARROW) Running benchmarks...$(COLOR_RESET)"
|
|
@echo ""
|
|
@$(GOTEST) -bench=. -benchmem ./...
|
|
@echo ""
|
|
|
|
## lint: Run golangci-lint
|
|
lint:
|
|
@echo ""
|
|
@echo "$(COLOR_BLUE)$(SYMBOL_ARROW) Running linter...$(COLOR_RESET)"
|
|
@if command -v golangci-lint >/dev/null 2>&1; then \
|
|
golangci-lint run ./...; \
|
|
echo "$(COLOR_GREEN)$(SYMBOL_CHECK) Lint complete$(COLOR_RESET)"; \
|
|
else \
|
|
echo "$(COLOR_YELLOW)$(SYMBOL_CROSS) golangci-lint not installed$(COLOR_RESET)"; \
|
|
echo "$(COLOR_DIM)Install with: go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest$(COLOR_RESET)"; \
|
|
fi
|
|
@echo ""
|
|
|
|
## check: Run fmt, vet, and lint
|
|
check: fmt vet lint
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_GREEN)$(SYMBOL_CHECK) All checks complete!$(COLOR_RESET)"
|
|
@echo ""
|
|
|
|
## dev: Run in development mode (auto-rebuild on changes)
|
|
dev:
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_MAGENTA)$(SYMBOL_STAR) Development Mode$(COLOR_RESET)"
|
|
@echo "$(COLOR_DIM)Watching for changes... (Ctrl+C to stop)$(COLOR_RESET)"
|
|
@echo ""
|
|
@if command -v air >/dev/null 2>&1; then \
|
|
air; \
|
|
else \
|
|
echo "$(COLOR_YELLOW)$(SYMBOL_CROSS) 'air' not installed, running without hot reload$(COLOR_RESET)"; \
|
|
echo "$(COLOR_DIM)Install with: go install github.com/cosmtrek/air@latest$(COLOR_RESET)"; \
|
|
echo ""; \
|
|
$(GOCMD) run $(MAIN_FILE); \
|
|
fi
|
|
|
|
# ============================================================================
|
|
# Info targets
|
|
# ============================================================================
|
|
|
|
## version: Display version information
|
|
version:
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)Version Information:$(COLOR_RESET)"
|
|
@echo " $(COLOR_YELLOW)$(BINARY_NAME)$(COLOR_RESET) version $(COLOR_GREEN)$(VERSION)$(COLOR_RESET)"
|
|
@echo " Go version: $(COLOR_DIM)$(shell go version)$(COLOR_RESET)"
|
|
@echo ""
|
|
|
|
## info: Display project information
|
|
info:
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)╔═══════════════════════════════════════════════════════════╗$(COLOR_RESET)"
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)║$(COLOR_RESET) $(COLOR_BOLD)$(COLOR_MAGENTA)Project Information$(COLOR_RESET) $(COLOR_BOLD)$(COLOR_CYAN)║$(COLOR_RESET)"
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)╚═══════════════════════════════════════════════════════════╝$(COLOR_RESET)"
|
|
@echo ""
|
|
@echo " $(COLOR_CYAN)$(SYMBOL_ARROW) Project:$(COLOR_RESET) $(COLOR_YELLOW)$(BINARY_NAME)$(COLOR_RESET)"
|
|
@echo " $(COLOR_CYAN)$(SYMBOL_ARROW) Version:$(COLOR_RESET) $(COLOR_GREEN)$(VERSION)$(COLOR_RESET)"
|
|
@echo " $(COLOR_CYAN)$(SYMBOL_ARROW) Build Dir:$(COLOR_RESET) $(COLOR_DIM)$(BUILD_DIR)$(COLOR_RESET)"
|
|
@echo " $(COLOR_CYAN)$(SYMBOL_ARROW) Main File:$(COLOR_RESET) $(COLOR_DIM)$(MAIN_FILE)$(COLOR_RESET)"
|
|
@echo " $(COLOR_CYAN)$(SYMBOL_ARROW) Go Version:$(COLOR_RESET) $(COLOR_DIM)$(shell go version | awk '{print $$3}')$(COLOR_RESET)"
|
|
@echo " $(COLOR_CYAN)$(SYMBOL_ARROW) Current OS:$(COLOR_RESET) $(COLOR_YELLOW)$(CURRENT_OS)$(COLOR_RESET)"
|
|
@echo " $(COLOR_CYAN)$(SYMBOL_ARROW) Current Arch:$(COLOR_RESET) $(COLOR_YELLOW)$(CURRENT_ARCH)$(COLOR_RESET)"
|
|
@echo ""
|
|
|
|
## size: Show binary sizes
|
|
size:
|
|
@echo ""
|
|
@echo "$(COLOR_BOLD)$(COLOR_CYAN)Binary Sizes:$(COLOR_RESET)"
|
|
@if [ -d "$(BUILD_DIR)" ] && [ -n "$$(ls -A $(BUILD_DIR) 2>/dev/null)" ]; then \
|
|
for file in $(BUILD_DIR)/*; do \
|
|
if [ -f "$$file" ] && [ "$$(basename $$file)" != "checksums.txt" ]; then \
|
|
size=$$(ls -lh "$$file" | awk '{print $$5}'); \
|
|
name=$$(basename "$$file"); \
|
|
echo " $(COLOR_YELLOW)$$name$(COLOR_RESET) $(COLOR_DIM)- $$size$(COLOR_RESET)"; \
|
|
fi; \
|
|
done; \
|
|
else \
|
|
echo " $(COLOR_RED)$(SYMBOL_CROSS) No binaries found. Run 'make build' first.$(COLOR_RESET)"; \
|
|
fi
|
|
@echo ""
|