@alexberardi/jarvis-admin 0.1.69 → 0.1.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server/dist/data/service-registry.json +1 -1
- package/server/dist/index.js +5 -0
- package/server/dist/index.js.map +1 -1
- package/server/dist/services/docker-path.d.ts +20 -0
- package/server/dist/services/docker-path.d.ts.map +1 -0
- package/server/dist/services/docker-path.js +33 -0
- package/server/dist/services/docker-path.js.map +1 -0
- package/server/src/data/service-registry.json +1 -1
package/package.json
CHANGED
package/server/dist/index.js
CHANGED
|
@@ -9,6 +9,7 @@ import { VERSION } from './version.js';
|
|
|
9
9
|
import { createDockerService } from './services/docker.js';
|
|
10
10
|
import { createComposeService } from './services/compose.js';
|
|
11
11
|
import { createRegistryService } from './services/registry.js';
|
|
12
|
+
import { ensureDockerOnPath } from './services/docker-path.js';
|
|
12
13
|
const REPO = 'alexberardi/jarvis-admin';
|
|
13
14
|
function openBrowser(url) {
|
|
14
15
|
const cmd = process.platform === 'win32' ? `start ${url}`
|
|
@@ -78,6 +79,10 @@ async function startRedirectServer(port) {
|
|
|
78
79
|
console.log(`[jarvis-admin] Already installed. Redirecting :${port} → :${adminPort}. Set JARVIS_FORCE_INSTALL=1 to re-run setup.`);
|
|
79
80
|
}
|
|
80
81
|
async function main() {
|
|
82
|
+
// Make Docker Desktop's `docker` CLI resolvable before any docker call —
|
|
83
|
+
// a launchd-started admin on macOS otherwise has a PATH without it, which
|
|
84
|
+
// shows up as a false "Docker not found" in the install wizard.
|
|
85
|
+
ensureDockerOnPath();
|
|
81
86
|
const config = loadConfig();
|
|
82
87
|
if (isInstalled() && !process.env.JARVIS_FORCE_INSTALL) {
|
|
83
88
|
await startRedirectServer(config.port);
|
package/server/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensure Docker Desktop's `docker` CLI is resolvable via PATH on macOS.
|
|
3
|
+
*
|
|
4
|
+
* macOS GUI/launchd processes inherit a minimal PATH (/usr/bin:/bin:/usr/sbin:
|
|
5
|
+
* /sbin) that excludes where Docker Desktop installs `docker` (/opt/homebrew/bin,
|
|
6
|
+
* /usr/local/bin, or the app bundle). Every `execSync('docker …')` in the admin
|
|
7
|
+
* then fails with "command not found" — which surfaces as a false "Docker not
|
|
8
|
+
* found" in the install wizard even when Docker Desktop is running. Prepending
|
|
9
|
+
* the standard locations makes docker resolve no matter how the admin was
|
|
10
|
+
* launched (launchd, Finder, or a shell that already had them).
|
|
11
|
+
*
|
|
12
|
+
* Injectable (platform/exists/env) purely so it's testable without mocking
|
|
13
|
+
* globals; callers invoke it with no args.
|
|
14
|
+
*/
|
|
15
|
+
export declare function ensureDockerOnPath(opts?: {
|
|
16
|
+
platform?: NodeJS.Platform;
|
|
17
|
+
exists?: (p: string) => boolean;
|
|
18
|
+
env?: NodeJS.ProcessEnv;
|
|
19
|
+
}): void;
|
|
20
|
+
//# sourceMappingURL=docker-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker-path.d.ts","sourceRoot":"","sources":["../../src/services/docker-path.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,GAAE;IACJ,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAA;IAC1B,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAA;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CACnB,GACL,IAAI,CAgBN"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
/**
|
|
3
|
+
* Ensure Docker Desktop's `docker` CLI is resolvable via PATH on macOS.
|
|
4
|
+
*
|
|
5
|
+
* macOS GUI/launchd processes inherit a minimal PATH (/usr/bin:/bin:/usr/sbin:
|
|
6
|
+
* /sbin) that excludes where Docker Desktop installs `docker` (/opt/homebrew/bin,
|
|
7
|
+
* /usr/local/bin, or the app bundle). Every `execSync('docker …')` in the admin
|
|
8
|
+
* then fails with "command not found" — which surfaces as a false "Docker not
|
|
9
|
+
* found" in the install wizard even when Docker Desktop is running. Prepending
|
|
10
|
+
* the standard locations makes docker resolve no matter how the admin was
|
|
11
|
+
* launched (launchd, Finder, or a shell that already had them).
|
|
12
|
+
*
|
|
13
|
+
* Injectable (platform/exists/env) purely so it's testable without mocking
|
|
14
|
+
* globals; callers invoke it with no args.
|
|
15
|
+
*/
|
|
16
|
+
export function ensureDockerOnPath(opts = {}) {
|
|
17
|
+
const platform = opts.platform ?? process.platform;
|
|
18
|
+
const exists = opts.exists ?? existsSync;
|
|
19
|
+
const env = opts.env ?? process.env;
|
|
20
|
+
if (platform !== 'darwin')
|
|
21
|
+
return;
|
|
22
|
+
const candidates = [
|
|
23
|
+
'/opt/homebrew/bin', // Apple Silicon Homebrew
|
|
24
|
+
'/usr/local/bin', // Intel Homebrew + Docker Desktop's classic symlink
|
|
25
|
+
'/Applications/Docker.app/Contents/Resources/bin', // Docker Desktop bundled CLI
|
|
26
|
+
];
|
|
27
|
+
const current = (env.PATH ?? '').split(':').filter(Boolean);
|
|
28
|
+
const toAdd = candidates.filter((p) => exists(p) && !current.includes(p));
|
|
29
|
+
if (toAdd.length > 0) {
|
|
30
|
+
env.PATH = [...toAdd, ...current].join(':');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=docker-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker-path.js","sourceRoot":"","sources":["../../src/services/docker-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAII,EAAE;IAEN,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAA;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,CAAA;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAA;IACnC,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAM;IAEjC,MAAM,UAAU,GAAG;QACjB,mBAAmB,EAAE,yBAAyB;QAC9C,gBAAgB,EAAE,oDAAoD;QACtE,iDAAiD,EAAE,6BAA6B;KACjF,CAAA;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IACzE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7C,CAAC;AACH,CAAC"}
|