@guckdev/cli 0.13.0 → 0.15.0
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/dist/cli.js +178 -9
- package/dist/cli.js.map +1 -1
- package/package.json +4 -4
- package/src/cli.ts +213 -8
package/dist/cli.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
import { spawn } from "node:child_process";
|
|
5
|
+
import { spawn, spawnSync } from "node:child_process";
|
|
6
6
|
import { loadConfig, resolveStoreDir, getDefaultConfig, findRepoRoot, resolveCheckpointPath, redactEvent, appendEvent, } from "@guckdev/core";
|
|
7
7
|
import { emit } from "@guckdev/sdk";
|
|
8
8
|
import { startMcpServer } from "@guckdev/mcp";
|
|
9
9
|
const printHelp = () => {
|
|
10
|
-
console.log(`Guck - MCP-first telemetry\n\nCommands:\n init Create .guck.json and .guck.local.json\n checkpoint Write a .guck-checkpoint epoch timestamp\n wrap --service <s> --session <id> -- <cmd...>\n Capture stdout/stderr and write JSONL\n emit --service <s> --session <id>\n Read JSON events from stdin and append\n mcp Start MCP server\n upgrade
|
|
10
|
+
console.log(`Guck - MCP-first telemetry\n\nCommands:\n init Create .guck.json and .guck.local.json\n checkpoint Write a .guck-checkpoint epoch timestamp\n wrap --service <s> --session <id> -- <cmd...>\n Capture stdout/stderr and write JSONL\n emit --service <s> --session <id>\n Read JSON events from stdin and append\n mcp Start MCP server\n upgrade [--manager <npm|pnpm|yarn|bun>]\n Update the @guckdev/cli install\n\nOptions:\n --version, -v Print version\n`);
|
|
11
11
|
};
|
|
12
12
|
const loadVersion = () => {
|
|
13
13
|
try {
|
|
@@ -31,6 +31,14 @@ const printVersion = () => {
|
|
|
31
31
|
}
|
|
32
32
|
process.stdout.write(`${version}\n`);
|
|
33
33
|
};
|
|
34
|
+
const isPackageManager = (value) => value === "npm" || value === "pnpm" || value === "yarn" || value === "bun";
|
|
35
|
+
const parsePackageManager = (value) => {
|
|
36
|
+
if (!value) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
const normalized = value.trim().toLowerCase();
|
|
40
|
+
return isPackageManager(normalized) ? normalized : null;
|
|
41
|
+
};
|
|
34
42
|
const detectPackageManager = () => {
|
|
35
43
|
const userAgent = process.env.npm_config_user_agent;
|
|
36
44
|
if (!userAgent) {
|
|
@@ -39,6 +47,64 @@ const detectPackageManager = () => {
|
|
|
39
47
|
const match = userAgent.match(/^(npm|pnpm|yarn|bun)\//);
|
|
40
48
|
return match ? match[1] : null;
|
|
41
49
|
};
|
|
50
|
+
const detectPackageManagerFromExecPath = (execPath) => {
|
|
51
|
+
if (!execPath) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
const lowered = execPath.toLowerCase();
|
|
55
|
+
if (lowered.includes("pnpm")) {
|
|
56
|
+
return "pnpm";
|
|
57
|
+
}
|
|
58
|
+
if (lowered.includes("yarn")) {
|
|
59
|
+
return "yarn";
|
|
60
|
+
}
|
|
61
|
+
if (lowered.includes("npm")) {
|
|
62
|
+
return "npm";
|
|
63
|
+
}
|
|
64
|
+
return null;
|
|
65
|
+
};
|
|
66
|
+
const detectPackageManagerFromEntryPath = (entryPath) => {
|
|
67
|
+
if (!entryPath) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
const lowered = entryPath.toLowerCase();
|
|
71
|
+
if (lowered.includes("/.pnpm/")) {
|
|
72
|
+
return "pnpm";
|
|
73
|
+
}
|
|
74
|
+
if (lowered.includes("/.yarn/") || lowered.includes("/.config/yarn/")) {
|
|
75
|
+
return "yarn";
|
|
76
|
+
}
|
|
77
|
+
if (lowered.includes("/.bun/")) {
|
|
78
|
+
return "bun";
|
|
79
|
+
}
|
|
80
|
+
if (lowered.includes("/lib/node_modules/") || lowered.includes("/node_modules/@guckdev/cli/")) {
|
|
81
|
+
return "npm";
|
|
82
|
+
}
|
|
83
|
+
return null;
|
|
84
|
+
};
|
|
85
|
+
const resolveUpgradeManager = (opts, env, entryPath) => {
|
|
86
|
+
const fromFlag = parsePackageManager(opts.manager);
|
|
87
|
+
if (fromFlag) {
|
|
88
|
+
return { manager: fromFlag, source: "flag" };
|
|
89
|
+
}
|
|
90
|
+
const fromEnv = parsePackageManager(env.GUCK_UPGRADE_MANAGER);
|
|
91
|
+
if (fromEnv) {
|
|
92
|
+
return { manager: fromEnv, source: "env" };
|
|
93
|
+
}
|
|
94
|
+
const fromUserAgent = detectPackageManager();
|
|
95
|
+
if (fromUserAgent) {
|
|
96
|
+
return { manager: fromUserAgent, source: "user agent" };
|
|
97
|
+
}
|
|
98
|
+
const fromExecPath = detectPackageManagerFromExecPath(env.npm_execpath);
|
|
99
|
+
if (fromExecPath) {
|
|
100
|
+
return { manager: fromExecPath, source: "execpath" };
|
|
101
|
+
}
|
|
102
|
+
const fromEntryPath = detectPackageManagerFromEntryPath(entryPath);
|
|
103
|
+
if (fromEntryPath) {
|
|
104
|
+
return { manager: fromEntryPath, source: "entry path" };
|
|
105
|
+
}
|
|
106
|
+
return null;
|
|
107
|
+
};
|
|
42
108
|
const getPackageManagerCandidates = () => {
|
|
43
109
|
const preferred = detectPackageManager();
|
|
44
110
|
const defaults = ["npm", "pnpm", "yarn", "bun"];
|
|
@@ -60,11 +126,27 @@ const buildUpgradeArgs = (manager) => {
|
|
|
60
126
|
return ["install", "-g", "@guckdev/cli"];
|
|
61
127
|
}
|
|
62
128
|
};
|
|
63
|
-
const
|
|
129
|
+
const canUseExecPath = (manager, execPath) => {
|
|
130
|
+
if (!execPath) {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
if (manager === "bun") {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
const lowered = execPath.toLowerCase();
|
|
137
|
+
return lowered.includes(manager);
|
|
138
|
+
};
|
|
139
|
+
const spawnUpgradeProcess = (manager, args, execPath) => {
|
|
140
|
+
if (canUseExecPath(manager, execPath)) {
|
|
141
|
+
return spawn(process.execPath, [execPath, ...args], { stdio: "inherit" });
|
|
142
|
+
}
|
|
143
|
+
return spawn(manager, args, { stdio: "inherit" });
|
|
144
|
+
};
|
|
145
|
+
const runUpgrade = async (manager, execPath) => {
|
|
64
146
|
const args = buildUpgradeArgs(manager);
|
|
65
147
|
return await new Promise((resolve) => {
|
|
66
148
|
let settled = false;
|
|
67
|
-
const child =
|
|
149
|
+
const child = spawnUpgradeProcess(manager, args, execPath);
|
|
68
150
|
const finish = (result) => {
|
|
69
151
|
if (settled) {
|
|
70
152
|
return;
|
|
@@ -260,19 +342,106 @@ const handleEmit = async (argv) => {
|
|
|
260
342
|
};
|
|
261
343
|
const handleUpgrade = async (argv) => {
|
|
262
344
|
if (argv.includes("--help") || argv.includes("-h")) {
|
|
263
|
-
console.log("Usage: guck upgrade\nUpdates @guckdev/cli using a global install.");
|
|
345
|
+
console.log("Usage: guck upgrade [--manager <npm|pnpm|yarn|bun>]\nUpdates @guckdev/cli using a global install.");
|
|
264
346
|
return 0;
|
|
265
347
|
}
|
|
266
|
-
|
|
267
|
-
|
|
348
|
+
const { opts } = parseArgs(argv);
|
|
349
|
+
const beforeVersion = loadVersion();
|
|
350
|
+
let entryPath = null;
|
|
351
|
+
const argvPath = process.argv[1];
|
|
352
|
+
if (argvPath) {
|
|
353
|
+
try {
|
|
354
|
+
entryPath = fs.realpathSync(argvPath);
|
|
355
|
+
}
|
|
356
|
+
catch {
|
|
357
|
+
entryPath = argvPath;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
const explicitManager = opts.manager ? parsePackageManager(opts.manager) : null;
|
|
361
|
+
if (opts.manager && !explicitManager) {
|
|
362
|
+
console.error(`Invalid package manager: ${opts.manager}. Expected npm, pnpm, yarn, or bun.`);
|
|
363
|
+
return 1;
|
|
364
|
+
}
|
|
365
|
+
const resolved = resolveUpgradeManager(opts, process.env, entryPath);
|
|
366
|
+
const execPath = process.env.npm_execpath;
|
|
367
|
+
const tryUpgrade = async (manager, source) => {
|
|
368
|
+
if (source) {
|
|
369
|
+
console.log(`Using ${manager} (detected from ${source}).`);
|
|
370
|
+
}
|
|
371
|
+
const result = await runUpgrade(manager, execPath);
|
|
268
372
|
if (result.status === "missing") {
|
|
269
|
-
|
|
373
|
+
return { status: "missing" };
|
|
270
374
|
}
|
|
271
375
|
if (result.status === "failed") {
|
|
272
376
|
console.error(`Failed to run ${manager}.`, result.error);
|
|
377
|
+
return { status: "failed", code: 1 };
|
|
378
|
+
}
|
|
379
|
+
return { status: "ok", code: result.code };
|
|
380
|
+
};
|
|
381
|
+
const verifyUpgrade = (exitCode) => {
|
|
382
|
+
const after = spawnSync("guck", ["--version"], { encoding: "utf8" });
|
|
383
|
+
const afterVersion = after.status === 0 ? after.stdout.trim() : null;
|
|
384
|
+
if (!afterVersion || !beforeVersion) {
|
|
385
|
+
console.warn("Upgrade completed, but could not verify the installed version.");
|
|
386
|
+
if (after.status !== 0 && after.stderr) {
|
|
387
|
+
console.warn(after.stderr.trim());
|
|
388
|
+
}
|
|
389
|
+
console.warn(`Current script path: ${process.argv[1] ?? "unknown"}`);
|
|
390
|
+
return exitCode;
|
|
391
|
+
}
|
|
392
|
+
if (afterVersion === beforeVersion) {
|
|
393
|
+
let resolvedPath = "";
|
|
394
|
+
const whichCmd = process.platform === "win32" ? "where" : "which";
|
|
395
|
+
const whichResult = spawnSync(whichCmd, ["guck"], { encoding: "utf8" });
|
|
396
|
+
if (whichResult.status === 0) {
|
|
397
|
+
resolvedPath = whichResult.stdout.trim();
|
|
398
|
+
}
|
|
399
|
+
console.warn("Upgrade finished, but the active guck version did not change.");
|
|
400
|
+
console.warn(`Before: ${beforeVersion}`);
|
|
401
|
+
console.warn(`After : ${afterVersion}`);
|
|
402
|
+
console.warn(`Current script path: ${process.argv[1] ?? "unknown"}`);
|
|
403
|
+
if (resolvedPath) {
|
|
404
|
+
console.warn(`PATH-resolved guck: ${resolvedPath}`);
|
|
405
|
+
}
|
|
406
|
+
return exitCode;
|
|
407
|
+
}
|
|
408
|
+
console.log("Upgraded @guckdev/cli");
|
|
409
|
+
console.log(`Before: ${beforeVersion}`);
|
|
410
|
+
console.log(`After : ${afterVersion}`);
|
|
411
|
+
return exitCode;
|
|
412
|
+
};
|
|
413
|
+
if (explicitManager) {
|
|
414
|
+
const result = await tryUpgrade(explicitManager, "flag");
|
|
415
|
+
if (result.status === "missing") {
|
|
416
|
+
console.error(`No ${explicitManager} executable found on PATH.`);
|
|
273
417
|
return 1;
|
|
274
418
|
}
|
|
275
|
-
|
|
419
|
+
if (result.status === "failed") {
|
|
420
|
+
return result.code;
|
|
421
|
+
}
|
|
422
|
+
return verifyUpgrade(result.code);
|
|
423
|
+
}
|
|
424
|
+
const candidates = [];
|
|
425
|
+
if (resolved) {
|
|
426
|
+
candidates.push({ manager: resolved.manager, source: resolved.source });
|
|
427
|
+
}
|
|
428
|
+
for (const manager of getPackageManagerCandidates()) {
|
|
429
|
+
if (!candidates.some((candidate) => candidate.manager === manager)) {
|
|
430
|
+
candidates.push({ manager, source: null });
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
for (const candidate of candidates) {
|
|
434
|
+
const result = await tryUpgrade(candidate.manager, candidate.source);
|
|
435
|
+
if (result.status === "missing") {
|
|
436
|
+
if (candidate.source) {
|
|
437
|
+
console.warn(`${candidate.manager} not found. Falling back to other package managers.`);
|
|
438
|
+
}
|
|
439
|
+
continue;
|
|
440
|
+
}
|
|
441
|
+
if (result.status === "failed") {
|
|
442
|
+
return result.code;
|
|
443
|
+
}
|
|
444
|
+
return verifyUpgrade(result.code);
|
|
276
445
|
}
|
|
277
446
|
console.error("No supported package manager found (npm, pnpm, yarn, bun).");
|
|
278
447
|
return 1;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@guckdev/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "CLI for Guck telemetry capture and MCP",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"node": ">=18"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@guckdev/sdk": "0.
|
|
35
|
-
"@guckdev/core": "0.
|
|
36
|
-
"@guckdev/mcp": "0.
|
|
34
|
+
"@guckdev/sdk": "0.15.0",
|
|
35
|
+
"@guckdev/core": "0.15.0",
|
|
36
|
+
"@guckdev/mcp": "0.15.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/node": "25.2.2"
|
package/src/cli.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
import { spawn } from "node:child_process";
|
|
5
|
+
import { spawn, spawnSync } from "node:child_process";
|
|
6
6
|
import {
|
|
7
7
|
loadConfig,
|
|
8
8
|
resolveStoreDir,
|
|
@@ -18,7 +18,7 @@ import { startMcpServer } from "@guckdev/mcp";
|
|
|
18
18
|
|
|
19
19
|
const printHelp = (): void => {
|
|
20
20
|
console.log(
|
|
21
|
-
`Guck - MCP-first telemetry\n\nCommands:\n init Create .guck.json and .guck.local.json\n checkpoint Write a .guck-checkpoint epoch timestamp\n wrap --service <s> --session <id> -- <cmd...>\n Capture stdout/stderr and write JSONL\n emit --service <s> --session <id>\n Read JSON events from stdin and append\n mcp Start MCP server\n upgrade
|
|
21
|
+
`Guck - MCP-first telemetry\n\nCommands:\n init Create .guck.json and .guck.local.json\n checkpoint Write a .guck-checkpoint epoch timestamp\n wrap --service <s> --session <id> -- <cmd...>\n Capture stdout/stderr and write JSONL\n emit --service <s> --session <id>\n Read JSON events from stdin and append\n mcp Start MCP server\n upgrade [--manager <npm|pnpm|yarn|bun>]\n Update the @guckdev/cli install\n\nOptions:\n --version, -v Print version\n`,
|
|
22
22
|
);
|
|
23
23
|
};
|
|
24
24
|
|
|
@@ -47,6 +47,24 @@ const printVersion = (): void => {
|
|
|
47
47
|
|
|
48
48
|
type PackageManagerName = "npm" | "pnpm" | "yarn" | "bun";
|
|
49
49
|
|
|
50
|
+
type UpgradeManagerSource =
|
|
51
|
+
| "flag"
|
|
52
|
+
| "env"
|
|
53
|
+
| "user agent"
|
|
54
|
+
| "execpath"
|
|
55
|
+
| "entry path";
|
|
56
|
+
|
|
57
|
+
const isPackageManager = (value: string): value is PackageManagerName =>
|
|
58
|
+
value === "npm" || value === "pnpm" || value === "yarn" || value === "bun";
|
|
59
|
+
|
|
60
|
+
const parsePackageManager = (value: string | undefined | null): PackageManagerName | null => {
|
|
61
|
+
if (!value) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
const normalized = value.trim().toLowerCase();
|
|
65
|
+
return isPackageManager(normalized) ? normalized : null;
|
|
66
|
+
};
|
|
67
|
+
|
|
50
68
|
const detectPackageManager = (): PackageManagerName | null => {
|
|
51
69
|
const userAgent = process.env.npm_config_user_agent;
|
|
52
70
|
if (!userAgent) {
|
|
@@ -56,6 +74,76 @@ const detectPackageManager = (): PackageManagerName | null => {
|
|
|
56
74
|
return match ? (match[1] as PackageManagerName) : null;
|
|
57
75
|
};
|
|
58
76
|
|
|
77
|
+
const detectPackageManagerFromExecPath = (execPath: string | undefined): PackageManagerName | null => {
|
|
78
|
+
if (!execPath) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
const lowered = execPath.toLowerCase();
|
|
82
|
+
if (lowered.includes("pnpm")) {
|
|
83
|
+
return "pnpm";
|
|
84
|
+
}
|
|
85
|
+
if (lowered.includes("yarn")) {
|
|
86
|
+
return "yarn";
|
|
87
|
+
}
|
|
88
|
+
if (lowered.includes("npm")) {
|
|
89
|
+
return "npm";
|
|
90
|
+
}
|
|
91
|
+
return null;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const detectPackageManagerFromEntryPath = (entryPath: string | null): PackageManagerName | null => {
|
|
95
|
+
if (!entryPath) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
const lowered = entryPath.toLowerCase();
|
|
99
|
+
if (lowered.includes("/.pnpm/")) {
|
|
100
|
+
return "pnpm";
|
|
101
|
+
}
|
|
102
|
+
if (lowered.includes("/.yarn/") || lowered.includes("/.config/yarn/")) {
|
|
103
|
+
return "yarn";
|
|
104
|
+
}
|
|
105
|
+
if (lowered.includes("/.bun/")) {
|
|
106
|
+
return "bun";
|
|
107
|
+
}
|
|
108
|
+
if (lowered.includes("/lib/node_modules/") || lowered.includes("/node_modules/@guckdev/cli/")) {
|
|
109
|
+
return "npm";
|
|
110
|
+
}
|
|
111
|
+
return null;
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
const resolveUpgradeManager = (
|
|
115
|
+
opts: Record<string, string>,
|
|
116
|
+
env: NodeJS.ProcessEnv,
|
|
117
|
+
entryPath: string | null,
|
|
118
|
+
): { manager: PackageManagerName; source: UpgradeManagerSource } | null => {
|
|
119
|
+
const fromFlag = parsePackageManager(opts.manager);
|
|
120
|
+
if (fromFlag) {
|
|
121
|
+
return { manager: fromFlag, source: "flag" };
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
const fromEnv = parsePackageManager(env.GUCK_UPGRADE_MANAGER);
|
|
125
|
+
if (fromEnv) {
|
|
126
|
+
return { manager: fromEnv, source: "env" };
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const fromUserAgent = detectPackageManager();
|
|
130
|
+
if (fromUserAgent) {
|
|
131
|
+
return { manager: fromUserAgent, source: "user agent" };
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
const fromExecPath = detectPackageManagerFromExecPath(env.npm_execpath);
|
|
135
|
+
if (fromExecPath) {
|
|
136
|
+
return { manager: fromExecPath, source: "execpath" };
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const fromEntryPath = detectPackageManagerFromEntryPath(entryPath);
|
|
140
|
+
if (fromEntryPath) {
|
|
141
|
+
return { manager: fromEntryPath, source: "entry path" };
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return null;
|
|
145
|
+
};
|
|
146
|
+
|
|
59
147
|
const getPackageManagerCandidates = (): PackageManagerName[] => {
|
|
60
148
|
const preferred = detectPackageManager();
|
|
61
149
|
const defaults: PackageManagerName[] = ["npm", "pnpm", "yarn", "bun"];
|
|
@@ -79,13 +167,36 @@ const buildUpgradeArgs = (manager: PackageManagerName): string[] => {
|
|
|
79
167
|
}
|
|
80
168
|
};
|
|
81
169
|
|
|
170
|
+
const canUseExecPath = (manager: PackageManagerName, execPath: string | undefined): boolean => {
|
|
171
|
+
if (!execPath) {
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
if (manager === "bun") {
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
const lowered = execPath.toLowerCase();
|
|
178
|
+
return lowered.includes(manager);
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
const spawnUpgradeProcess = (
|
|
182
|
+
manager: PackageManagerName,
|
|
183
|
+
args: string[],
|
|
184
|
+
execPath: string | undefined,
|
|
185
|
+
): ReturnType<typeof spawn> => {
|
|
186
|
+
if (canUseExecPath(manager, execPath)) {
|
|
187
|
+
return spawn(process.execPath, [execPath as string, ...args], { stdio: "inherit" });
|
|
188
|
+
}
|
|
189
|
+
return spawn(manager, args, { stdio: "inherit" });
|
|
190
|
+
};
|
|
191
|
+
|
|
82
192
|
const runUpgrade = async (
|
|
83
193
|
manager: PackageManagerName,
|
|
194
|
+
execPath: string | undefined,
|
|
84
195
|
): Promise<{ status: "ok"; code: number } | { status: "missing" } | { status: "failed"; error: Error }> => {
|
|
85
196
|
const args = buildUpgradeArgs(manager);
|
|
86
197
|
return await new Promise((resolve) => {
|
|
87
198
|
let settled = false;
|
|
88
|
-
const child =
|
|
199
|
+
const child = spawnUpgradeProcess(manager, args, execPath);
|
|
89
200
|
const finish = (
|
|
90
201
|
result: { status: "ok"; code: number } | { status: "missing" } | { status: "failed"; error: Error },
|
|
91
202
|
) => {
|
|
@@ -310,20 +421,114 @@ const handleEmit = async (argv: string[]): Promise<number> => {
|
|
|
310
421
|
|
|
311
422
|
const handleUpgrade = async (argv: string[]): Promise<number> => {
|
|
312
423
|
if (argv.includes("--help") || argv.includes("-h")) {
|
|
313
|
-
console.log("Usage: guck upgrade\nUpdates @guckdev/cli using a global install.");
|
|
424
|
+
console.log("Usage: guck upgrade [--manager <npm|pnpm|yarn|bun>]\nUpdates @guckdev/cli using a global install.");
|
|
314
425
|
return 0;
|
|
315
426
|
}
|
|
316
427
|
|
|
317
|
-
|
|
318
|
-
|
|
428
|
+
const { opts } = parseArgs(argv);
|
|
429
|
+
const beforeVersion = loadVersion();
|
|
430
|
+
let entryPath: string | null = null;
|
|
431
|
+
const argvPath = process.argv[1];
|
|
432
|
+
if (argvPath) {
|
|
433
|
+
try {
|
|
434
|
+
entryPath = fs.realpathSync(argvPath);
|
|
435
|
+
} catch {
|
|
436
|
+
entryPath = argvPath;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
const explicitManager = opts.manager ? parsePackageManager(opts.manager) : null;
|
|
441
|
+
if (opts.manager && !explicitManager) {
|
|
442
|
+
console.error(`Invalid package manager: ${opts.manager}. Expected npm, pnpm, yarn, or bun.`);
|
|
443
|
+
return 1;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
const resolved = resolveUpgradeManager(opts, process.env, entryPath);
|
|
447
|
+
const execPath = process.env.npm_execpath;
|
|
448
|
+
|
|
449
|
+
const tryUpgrade = async (manager: PackageManagerName, source: UpgradeManagerSource | null) => {
|
|
450
|
+
if (source) {
|
|
451
|
+
console.log(`Using ${manager} (detected from ${source}).`);
|
|
452
|
+
}
|
|
453
|
+
const result = await runUpgrade(manager, execPath);
|
|
319
454
|
if (result.status === "missing") {
|
|
320
|
-
|
|
455
|
+
return { status: "missing" as const };
|
|
321
456
|
}
|
|
322
457
|
if (result.status === "failed") {
|
|
323
458
|
console.error(`Failed to run ${manager}.`, result.error);
|
|
459
|
+
return { status: "failed" as const, code: 1 };
|
|
460
|
+
}
|
|
461
|
+
return { status: "ok" as const, code: result.code };
|
|
462
|
+
};
|
|
463
|
+
|
|
464
|
+
const verifyUpgrade = (exitCode: number): number => {
|
|
465
|
+
const after = spawnSync("guck", ["--version"], { encoding: "utf8" });
|
|
466
|
+
const afterVersion = after.status === 0 ? after.stdout.trim() : null;
|
|
467
|
+
if (!afterVersion || !beforeVersion) {
|
|
468
|
+
console.warn("Upgrade completed, but could not verify the installed version.");
|
|
469
|
+
if (after.status !== 0 && after.stderr) {
|
|
470
|
+
console.warn(after.stderr.trim());
|
|
471
|
+
}
|
|
472
|
+
console.warn(`Current script path: ${process.argv[1] ?? "unknown"}`);
|
|
473
|
+
return exitCode;
|
|
474
|
+
}
|
|
475
|
+
if (afterVersion === beforeVersion) {
|
|
476
|
+
let resolvedPath = "";
|
|
477
|
+
const whichCmd = process.platform === "win32" ? "where" : "which";
|
|
478
|
+
const whichResult = spawnSync(whichCmd, ["guck"], { encoding: "utf8" });
|
|
479
|
+
if (whichResult.status === 0) {
|
|
480
|
+
resolvedPath = whichResult.stdout.trim();
|
|
481
|
+
}
|
|
482
|
+
console.warn("Upgrade finished, but the active guck version did not change.");
|
|
483
|
+
console.warn(`Before: ${beforeVersion}`);
|
|
484
|
+
console.warn(`After : ${afterVersion}`);
|
|
485
|
+
console.warn(`Current script path: ${process.argv[1] ?? "unknown"}`);
|
|
486
|
+
if (resolvedPath) {
|
|
487
|
+
console.warn(`PATH-resolved guck: ${resolvedPath}`);
|
|
488
|
+
}
|
|
489
|
+
return exitCode;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
console.log("Upgraded @guckdev/cli");
|
|
493
|
+
console.log(`Before: ${beforeVersion}`);
|
|
494
|
+
console.log(`After : ${afterVersion}`);
|
|
495
|
+
return exitCode;
|
|
496
|
+
};
|
|
497
|
+
|
|
498
|
+
if (explicitManager) {
|
|
499
|
+
const result = await tryUpgrade(explicitManager, "flag");
|
|
500
|
+
if (result.status === "missing") {
|
|
501
|
+
console.error(`No ${explicitManager} executable found on PATH.`);
|
|
324
502
|
return 1;
|
|
325
503
|
}
|
|
326
|
-
|
|
504
|
+
if (result.status === "failed") {
|
|
505
|
+
return result.code;
|
|
506
|
+
}
|
|
507
|
+
return verifyUpgrade(result.code);
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
const candidates: Array<{ manager: PackageManagerName; source: UpgradeManagerSource | null }> = [];
|
|
511
|
+
if (resolved) {
|
|
512
|
+
candidates.push({ manager: resolved.manager, source: resolved.source });
|
|
513
|
+
}
|
|
514
|
+
for (const manager of getPackageManagerCandidates()) {
|
|
515
|
+
if (!candidates.some((candidate) => candidate.manager === manager)) {
|
|
516
|
+
candidates.push({ manager, source: null });
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
for (const candidate of candidates) {
|
|
521
|
+
const result = await tryUpgrade(candidate.manager, candidate.source);
|
|
522
|
+
if (result.status === "missing") {
|
|
523
|
+
if (candidate.source) {
|
|
524
|
+
console.warn(`${candidate.manager} not found. Falling back to other package managers.`);
|
|
525
|
+
}
|
|
526
|
+
continue;
|
|
527
|
+
}
|
|
528
|
+
if (result.status === "failed") {
|
|
529
|
+
return result.code;
|
|
530
|
+
}
|
|
531
|
+
return verifyUpgrade(result.code);
|
|
327
532
|
}
|
|
328
533
|
|
|
329
534
|
console.error("No supported package manager found (npm, pnpm, yarn, bun).");
|