Skip to content

Commit b8e9b84

Browse files
committed
fix(npm): proper npx bin
1 parent b14d8f4 commit b8e9b84

File tree

6 files changed

+40
-33
lines changed

6 files changed

+40
-33
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
.npmrc
44
kubernetes-mcp-server
5-
kubernetes-mcp-server/README.md
5+
npm/kubernetes-mcp-server/README.md
6+
!npm/kubernetes-mcp-server
67
kubernetes-mcp-server-darwin-amd64
78
!npm/kubernetes-mcp-server-darwin-amd64/
89
kubernetes-mcp-server-darwin-arm64

Makefile

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ CLEAN_TARGETS :=
2727
CLEAN_TARGETS += '$(BINARY_NAME)'
2828
CLEAN_TARGETS += $(foreach os,$(OSES),$(foreach arch,$(ARCHS),$(BINARY_NAME)-$(os)-$(arch)$(if $(findstring windows,$(os)),.exe,)))
2929
CLEAN_TARGETS += $(foreach os,$(OSES),$(foreach arch,$(ARCHS),./npm/$(BINARY_NAME)-$(os)-$(arch)/bin/))
30-
CLEAN_TARGETS += ./npm/.npmrc ./npm/bin ./npm/README.md
30+
CLEAN_TARGETS += ./npm/kubernetes-mcp-server/.npmrc ./npm/kubernetes-mcp-server/README.md
3131
CLEAN_TARGETS += $(foreach os,$(OSES),$(foreach arch,$(ARCHS),./npm/$(BINARY_NAME)-$(os)-$(arch)/.npmrc))
3232

3333
# The help will print out all targets with their descriptions organized bellow their categories. The categories are represented by `##@` and the target descriptions by `##`.
@@ -58,7 +58,7 @@ build-all-platforms: clean tidy format ## Build the project for all platforms
5858
))
5959

6060
.PHONY: npm
61-
npm: build-all-platforms ## Create the npm packages
61+
npm: build-all-platforms ## Create the npm packages for each platform
6262
$(foreach os,$(OSES),$(foreach arch,$(ARCHS), \
6363
EXECUTABLE=./$(BINARY_NAME)-$(os)-$(arch)$(if $(findstring windows,$(os)),.exe,); \
6464
DIRNAME=$(BINARY_NAME)-$(os)-$(arch); \
@@ -76,13 +76,11 @@ npm-publish: npm ## Publish the npm packages
7676
npm publish; \
7777
cd ../..; \
7878
))
79-
cp README.md ./npm/README.md
80-
mkdir -p ./npm/bin
81-
cp ./npm/index.js ./npm/bin/cli
82-
echo '//registry.npmjs.org/:_authToken=$(NPM_TOKEN)' >> ./npm/.npmrc
83-
jq '.version = "$(NPM_VERSION)"' ./npm/package.json > tmp.json && mv tmp.json ./npm/package.json; \
84-
jq '.optionalDependencies |= with_entries(.value = "$(NPM_VERSION)")' ./npm/package.json > tmp.json && mv tmp.json ./npm/package.json; \
85-
cd npm && npm publish
79+
cp README.md ./npm/kubernetes-mcp-server/README.md
80+
echo '//registry.npmjs.org/:_authToken=$(NPM_TOKEN)' >> ./npm/kubernetes-mcp-server/.npmrc
81+
jq '.version = "$(NPM_VERSION)"' ./npm/kubernetes-mcp-server/package.json > tmp.json && mv tmp.json ./npm/kubernetes-mcp-server/package.json; \
82+
jq '.optionalDependencies |= with_entries(.value = "$(NPM_VERSION)")' ./npm/kubernetes-mcp-server/package.json > tmp.json && mv tmp.json ./npm/kubernetes-mcp-server/package.json; \
83+
cd npm/kubernetes-mcp-server && npm publish
8684

8785
.PHONY: test
8886
test: ## Run the tests

npm/index.js

Lines changed: 0 additions & 21 deletions
This file was deleted.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/usr/bin/env node
2+
3+
const path = require('path')
4+
const childProcess = require('child_process');
5+
6+
const BINARY_MAP = {
7+
darwin_x64: {name: 'kubernetes-mcp-server-darwin-amd64', suffix: ''},
8+
darwin_arm64: {name: 'kubernetes-mcp-server-darwin-arm64', suffix: ''},
9+
linux_x64: {name: 'kubernetes-mcp-server-linux-amd64', suffix: ''},
10+
linux_arm64: {name: 'kubernetes-mcp-server-linux-arm64', suffix: ''},
11+
win32_x64: {name: 'kubernetes-mcp-server-windows-amd64', suffix: '.exe'},
12+
win32_arm64: {name: 'kubernetes-mcp-server-windows-arm64', suffix: '.exe'},
13+
};
14+
15+
const binary = BINARY_MAP[`${process.platform}_${process.arch}`];
16+
17+
const resolveBinaryPath = () => {
18+
try {
19+
// Resolving will fail if the optionalDependency was not installed
20+
return require.resolve(`${binary.name}/bin/${binary.name}${binary.suffix}`)
21+
} catch (e) {
22+
return path.join(__dirname, '..', `${binary.name}${binary.suffix}`)
23+
}
24+
};
25+
26+
childProcess.execFileSync(resolveBinaryPath(), process.argv.slice(2), {
27+
stdio: 'inherit',
28+
});
29+
File renamed without changes.

npm/package.json renamed to npm/kubernetes-mcp-server/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
"name": "kubernetes-mcp-server",
33
"version": "0.0.0",
44
"description": "Model Context Protocol (MCP) server for Kubernetes and OpenShift",
5-
"main": "./index.js",
5+
"main": "./bin/index.js",
66
"bin": {
7-
"kubernetes-mcp-server": "bin/cli"
7+
"kubernetes-mcp-server": "bin/index.js"
88
},
99
"optionalDependencies": {
1010
"kubernetes-mcp-server-darwin-amd64": "0.0.0",

0 commit comments

Comments
 (0)