Skip to content

Commit f1b0e11

Browse files
committed
Windows exe
1 parent 9adc658 commit f1b0e11

1 file changed

Lines changed: 35 additions & 12 deletions

File tree

Makefile

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -68,21 +68,38 @@ help: ## Show this help message
6868
.PHONY: build
6969
build: ## 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
8293
install: 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
240263
clean: ## 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

Comments
 (0)