@@ -68,21 +68,38 @@ help: ## Show this help message
6868.PHONY : build
6969build : # # Build the kubectl plugin binary (use PLATFORM=os/arch for cross-compilation)
7070 @if [ -n " $( PLATFORM) " ]; then \
71+ if [ " $( GOOS) " = " windows" ]; then \
72+ binary_suffix=" .exe" ; \
73+ else \
74+ binary_suffix=" " ; \
75+ fi ; \
7176 echo " Building $( BINARY_NAME) for $( PLATFORM) ..." ; \
72- GOOS=$(GOOS ) GOARCH=$(GOARCH ) go build -o $(BINARY_NAME ) -$(GOOS ) -$(GOARCH ) . ; \
73- echo " ✅ Built $( BINARY_NAME) -$( GOOS) -$( GOARCH) successfully!" ; \
77+ GOOS=$(GOOS ) GOARCH=$(GOARCH ) go build -o $(BINARY_NAME ) -$(GOOS ) -$(GOARCH ) $$ binary_suffix . ; \
78+ echo " ✅ Built $( BINARY_NAME) -$( GOOS) -$( GOARCH) $$ binary_suffix successfully!" ; \
7479 else \
75- echo " Building $( BINARY_NAME) for current platform ($$ (go env GOOS)/$$ (go env GOARCH))..." ; \
76- go build -o $(BINARY_NAME ) . ; \
77- echo " ✅ Built $( BINARY_NAME) successfully!" ; \
80+ GOOS=$$(go env GOOS ) ; \
81+ if [ " $$ GOOS" = " windows" ]; then \
82+ binary_name=" $( BINARY_NAME) .exe" ; \
83+ else \
84+ binary_name=" $( BINARY_NAME) " ; \
85+ fi ; \
86+ echo " Building $$ binary_name for current platform ($$ GOOS/$$ (go env GOARCH))..." ; \
87+ go build -o $$ binary_name . ; \
88+ echo " ✅ Built $$ binary_name successfully!" ; \
7889 fi
7990
8091# Installation targets
8192.PHONY : install
8293install : build # # Build and install the kubectl plugin to ~/.local/bin (no sudo required)
83- @echo " Installing $( BINARY_NAME) to $( INSTALL_PATH) ..."
84- @mkdir -p $(INSTALL_PATH )
85- cp $(BINARY_NAME ) $(INSTALL_PATH ) /
94+ @GOOS=$$(go env GOOS ) ; \
95+ if [ " $$ GOOS" = " windows" ]; then \
96+ binary_name=" $( BINARY_NAME) .exe" ; \
97+ else \
98+ binary_name=" $( BINARY_NAME) " ; \
99+ fi ; \
100+ echo " Installing $$ binary_name to $( INSTALL_PATH) ..." ; \
101+ mkdir -p $(INSTALL_PATH ) ; \
102+ cp $$ binary_name $(INSTALL_PATH ) /
86103 @echo " ✅ Installed to $( INSTALL_PATH) "
87104 @echo " "
88105 @PATH_UPDATED=false; \
@@ -132,9 +149,15 @@ install: build ## Build and install the kubectl plugin to ~/.local/bin (no sudo
132149 fi ; \
133150 echo " " ; \
134151 fi ; \
135- echo " Setting Velero namespace to: $$ NAMESPACE" ; \
136- $(INSTALL_PATH ) /$(BINARY_NAME ) client config set namespace=$$ NAMESPACE 2> /dev/null || true ; \
137- echo " ✅ Client config initialized" ; \
152+ echo " Setting Velero namespace to: $$ NAMESPACE" ; \
153+ GOOS=$$(go env GOOS ) ; \
154+ if [ " $$ GOOS" = " windows" ]; then \
155+ binary_name=" $( BINARY_NAME) .exe" ; \
156+ else \
157+ binary_name=" $( BINARY_NAME) " ; \
158+ fi ; \
159+ $(INSTALL_PATH ) /$$ binary_name client config set namespace=$$ NAMESPACE 2> /dev/null || true ; \
160+ echo " ✅ Client config initialized" ; \
138161 echo " " ; \
139162 echo " 📋 Next steps:" ; \
140163 echo " 1. Test admin commands: kubectl oadp backup get" ; \
@@ -239,7 +262,7 @@ test-integration: ## Run integration tests only
239262.PHONY : clean
240263clean : # # Remove built binaries
241264 @echo " Cleaning up..."
242- @rm -f $(BINARY_NAME ) $(BINARY_NAME ) -linux-* $(BINARY_NAME ) -darwin-* $(BINARY_NAME ) -windows-*
265+ @rm -f $(BINARY_NAME ) $(BINARY_NAME ) .exe $( BINARY_NAME ) -linux-* $(BINARY_NAME ) -darwin-* $(BINARY_NAME ) -windows-*
243266 @rm -f * .tar.gz * .sha256
244267 @rm -f oadp-* .yaml oadp-* .yaml.tmp
245268 @echo " ✅ Cleanup complete!"
0 commit comments