|
| 1 | +APP=kdiff |
| 2 | +VERSION=0.1.0 |
| 3 | +COMMIT=$(shell git rev-parse --short HEAD 2>/dev/null || echo "none") |
| 4 | +DATE=$(shell date -u +%Y-%m-%dT%H:%M:%SZ) |
| 5 | + |
| 6 | +.PHONY: build test dist deb clean help |
| 7 | + |
| 8 | +help: |
| 9 | + @echo "Available targets:" |
| 10 | + @echo " build - Build the binary to bin/$(APP)" |
| 11 | + @echo " install - Build and install to /opt/homebrew/bin" |
| 12 | + @echo " test - Run all tests" |
| 13 | + @echo " dist - Build distribution binaries for multiple platforms" |
| 14 | + @echo " deb - Build Debian package" |
| 15 | + @echo " clean - Clean build artifacts" |
| 16 | + @echo " redeploy - Clean and rebuild" |
| 17 | + @echo " help - Show this help message" |
| 18 | + |
| 19 | +build: |
| 20 | + mkdir -p bin |
| 21 | + go build -ldflags "-X github.com/rajamohan-rj/kdiff/cmd/kdiff.version=$(VERSION) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.commit=$(COMMIT) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.date=$(DATE)" -o bin/$(APP) . |
| 22 | + |
| 23 | +install: build |
| 24 | + cp bin/$(APP) /opt/homebrew/bin/$(APP) 2>/dev/null || echo "Could not install to /opt/homebrew/bin, run 'sudo make install' or add bin/ to PATH" |
| 25 | + |
| 26 | +test: |
| 27 | + go test ./... |
| 28 | + |
| 29 | +dist: clean |
| 30 | + mkdir -p dist |
| 31 | + GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -X github.com/rajamohan-rj/kdiff/cmd/kdiff.version=$(VERSION) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.commit=$(COMMIT) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.date=$(DATE)" -o dist/$(APP)-linux-amd64 . |
| 32 | + GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w -X github.com/rajamohan-rj/kdiff/cmd/kdiff.version=$(VERSION) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.commit=$(COMMIT) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.date=$(DATE)" -o dist/$(APP)-darwin-amd64 . |
| 33 | + GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w -X github.com/rajamohan-rj/kdiff/cmd/kdiff.version=$(VERSION) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.commit=$(COMMIT) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.date=$(DATE)" -o dist/$(APP)-darwin-arm64 . |
| 34 | + GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -X github.com/rajamohan-rj/kdiff/cmd/kdiff.version=$(VERSION) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.commit=$(COMMIT) -X github.com/rajamohan-rj/kdiff/cmd/kdiff.date=$(DATE)" -o dist/$(APP)-linux-arm64 . |
| 35 | + cd dist && tar -czf $(APP)_$(VERSION)_linux_amd64.tar.gz $(APP)-linux-amd64 && tar -czf $(APP)_$(VERSION)_linux_arm64.tar.gz $(APP)-linux-arm64 && tar -czf $(APP)_$(VERSION)_darwin_amd64.tar.gz $(APP)-darwin-amd64 && tar -czf $(APP)_$(VERSION)_darwin_arm64.tar.gz $(APP)-darwin-arm64 |
| 36 | + |
| 37 | +deb: build |
| 38 | + mkdir -p dist/deb/usr/local/bin dist/deb/DEBIAN |
| 39 | + cp bin/$(APP) dist/deb/usr/local/bin/kdiff |
| 40 | + echo "Package: kdiff" > dist/deb/DEBIAN/control |
| 41 | + echo "Version: $(VERSION)" >> dist/deb/DEBIAN/control |
| 42 | + echo "Section: utils" >> dist/deb/DEBIAN/control |
| 43 | + echo "Priority: optional" >> dist/deb/DEBIAN/control |
| 44 | + echo "Architecture: amd64" >> dist/deb/DEBIAN/control |
| 45 | + echo "Maintainer: You <your-email@example.com>" >> dist/deb/DEBIAN/control |
| 46 | + echo "Description: Kubernetes resource differ" >> dist/deb/DEBIAN/control |
| 47 | + dpkg-deb --build dist/deb dist/kdiff_$(VERSION)_amd64.deb |
| 48 | + |
| 49 | +clean: |
| 50 | + rm -rf bin dist |
| 51 | + |
| 52 | +redeploy: clean build |
0 commit comments