This commit is contained in:
Jeffrey Paul 2025-05-29 08:33:06 -07:00
parent 3d90388b5b
commit 7dc14da4af

View File

@ -1,93 +1,22 @@
# Makefile for Secret Manager - Simple Go CLI Tool default: check
# Configuration
BINARY_NAME = secret
default: build
# Simple build (no code signing needed) # Simple build (no code signing needed)
build: clean ./secret:
@echo "Building secret manager..." go build -v -o $@ cmd/secret/main.go
go build -o $(BINARY_NAME) cmd/secret/main.go
@echo "Build complete: ./$(BINARY_NAME)"
# Build with verbose output
build-verbose: clean
@echo "Building with verbose output..."
go build -v -o $(BINARY_NAME) cmd/secret/main.go
@echo "Build complete: ./$(BINARY_NAME)"
# Vet the code
vet: vet:
@echo "Running go vet..."
go vet ./... go vet ./...
# Test with linting and vetting test:
test: vet lint
@echo "Running go tests..."
go test -v ./... go test -v ./...
bash test_secret_manager.sh
# Run comprehensive test script
test-comprehensive: build
@echo "Running comprehensive test script..."
@chmod +x test_secret_manager.sh
@./test_secret_manager.sh
# Run all tests (unit tests + comprehensive tests)
test-all: test test-comprehensive
# Lint the code
lint: lint:
@echo "Running linter..."
golangci-lint run --timeout 5m golangci-lint run --timeout 5m
# Check all code quality (build + vet + lint + unit tests) # Check all code quality (build + vet + lint + unit tests)
check: build vet lint test check: ./secret vet lint test
# Clean build artifacts # Clean build artifacts
clean: clean:
rm -f ./$(BINARY_NAME) rm -f ./secret
# Install to /usr/local/bin
install: build
@echo "Installing to /usr/local/bin..."
sudo cp $(BINARY_NAME) /usr/local/bin/
@echo "Installed to /usr/local/bin/$(BINARY_NAME)"
# Uninstall from /usr/local/bin
uninstall:
@echo "Removing from /usr/local/bin..."
sudo rm -f /usr/local/bin/$(BINARY_NAME)
@echo "Uninstalled $(BINARY_NAME)"
# Test keychain functionality
test-keychain:
@echo "Testing keychain functionality..."
@./$(BINARY_NAME) --help > /dev/null 2>&1 && echo "Binary runs successfully" || echo "Binary failed to run"
# Help target
help:
@echo "Secret Manager - Simple Go CLI Tool"
@echo "===================================="
@echo ""
@echo "Available targets:"
@echo " build - Build the secret manager (default)"
@echo " build-verbose - Build with verbose output"
@echo " vet - Run go vet"
@echo " lint - Run linter only"
@echo " test - Run unit tests with vet and lint"
@echo " test-comprehensive - Run comprehensive test script"
@echo " test-all - Run both unit tests and comprehensive tests"
@echo " check - Run all code quality checks"
@echo " clean - Remove build artifacts"
@echo " install - Install to /usr/local/bin"
@echo " uninstall - Remove from /usr/local/bin"
@echo " test-keychain - Test basic functionality"
@echo " help - Show this help"
@echo ""
@echo "Usage:"
@echo " make build && ./secret --help"
@echo " make test-all # Run all tests"
@echo " make check # Run all quality checks"
.PHONY: default build build-verbose vet test test-comprehensive test-all lint check clean install uninstall test-keychain help