# Makefile for Secret Manager - Simple Go CLI Tool # Configuration BINARY_NAME = secret default: build # Simple build (no code signing needed) build: clean @echo "Building secret manager..." 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: @echo "Running go vet..." go vet ./... # Test with linting and vetting test: vet lint @echo "Running go tests..." go test -v ./... # 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: @echo "Running linter..." golangci-lint run --timeout 5m # Check all code quality (build + vet + lint + unit tests) check: build vet lint test # Clean build artifacts clean: rm -f ./$(BINARY_NAME) # 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