snapshot-checker 0.2.2 → 0.4.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.
Files changed (93) hide show
  1. package/README.md +103 -343
  2. package/dist/commands/forkall.d.ts +4 -12
  3. package/dist/commands/forkall.d.ts.map +1 -1
  4. package/dist/commands/forkall.js +46 -23
  5. package/dist/commands/forkall.js.map +1 -1
  6. package/dist/commands/report.d.ts +9 -0
  7. package/dist/commands/report.d.ts.map +1 -1
  8. package/dist/commands/report.js +153 -32
  9. package/dist/commands/report.js.map +1 -1
  10. package/dist/demos/context-demo.d.ts +10 -0
  11. package/dist/demos/context-demo.d.ts.map +1 -0
  12. package/dist/{commands/context_demo.js → demos/context-demo.js} +15 -18
  13. package/dist/demos/context-demo.js.map +1 -0
  14. package/dist/{commands → demos}/mac-example.d.ts +1 -3
  15. package/dist/demos/mac-example.d.ts.map +1 -0
  16. package/dist/{commands → demos}/mac-example.js +2 -4
  17. package/dist/demos/mac-example.js.map +1 -0
  18. package/dist/{commands/timeout_demo.d.ts → demos/timeout-demo.d.ts} +2 -2
  19. package/dist/demos/timeout-demo.d.ts.map +1 -0
  20. package/dist/demos/timeout-demo.js +35 -0
  21. package/dist/demos/timeout-demo.js.map +1 -0
  22. package/dist/src/cli.js +209 -169
  23. package/dist/src/cli.js.map +1 -1
  24. package/dist/src/executor.d.ts +1 -3
  25. package/dist/src/executor.d.ts.map +1 -1
  26. package/dist/src/executor.js +1 -3
  27. package/dist/src/executor.js.map +1 -1
  28. package/dist/src/groupSpecs.d.ts +1 -4
  29. package/dist/src/groupSpecs.d.ts.map +1 -1
  30. package/dist/src/groupSpecs.js.map +1 -1
  31. package/dist/src/index.d.ts +1 -1
  32. package/dist/src/index.d.ts.map +1 -1
  33. package/dist/src/index.js +1 -1
  34. package/dist/src/index.js.map +1 -1
  35. package/dist/src/lib/{common_groups.d.ts → presets.d.ts} +24 -2
  36. package/dist/src/lib/presets.d.ts.map +1 -0
  37. package/dist/src/lib/{common_groups.js → presets.js} +73 -24
  38. package/dist/src/lib/presets.js.map +1 -0
  39. package/dist/src/lib/{programmatic.d.ts → scenario.d.ts} +9 -11
  40. package/dist/src/lib/scenario.d.ts.map +1 -0
  41. package/dist/src/lib/{programmatic.js → scenario.js} +6 -10
  42. package/dist/src/lib/scenario.js.map +1 -0
  43. package/dist/src/logger.d.ts +23 -0
  44. package/dist/src/logger.d.ts.map +1 -0
  45. package/dist/src/logger.js +92 -0
  46. package/dist/src/logger.js.map +1 -0
  47. package/dist/src/runCommand.d.ts +27 -35
  48. package/dist/src/runCommand.d.ts.map +1 -1
  49. package/dist/src/runCommand.js +81 -70
  50. package/dist/src/runCommand.js.map +1 -1
  51. package/dist/src/runGroups.d.ts +6 -12
  52. package/dist/src/runGroups.d.ts.map +1 -1
  53. package/dist/src/runGroups.js +14 -19
  54. package/dist/src/runGroups.js.map +1 -1
  55. package/dist/src/runners/builtinFunctionRunner.d.ts +1 -0
  56. package/dist/src/runners/builtinFunctionRunner.d.ts.map +1 -1
  57. package/dist/src/runners/builtinFunctionRunner.js +5 -12
  58. package/dist/src/runners/builtinFunctionRunner.js.map +1 -1
  59. package/dist/src/runners/embedRunner.d.ts +1 -0
  60. package/dist/src/runners/embedRunner.d.ts.map +1 -1
  61. package/dist/src/runners/embedRunner.js +5 -1
  62. package/dist/src/runners/embedRunner.js.map +1 -1
  63. package/dist/src/runners/shellRunner.d.ts +1 -0
  64. package/dist/src/runners/shellRunner.d.ts.map +1 -1
  65. package/dist/src/runners/shellRunner.js +40 -8
  66. package/dist/src/runners/shellRunner.js.map +1 -1
  67. package/dist/src/runners/types.d.ts +9 -0
  68. package/dist/src/runners/types.d.ts.map +1 -1
  69. package/dist/src/types.d.ts +47 -77
  70. package/dist/src/types.d.ts.map +1 -1
  71. package/dist/src/types.js +37 -10
  72. package/dist/src/types.js.map +1 -1
  73. package/package.json +10 -3
  74. package/dist/commands/context_demo.d.ts +0 -18
  75. package/dist/commands/context_demo.d.ts.map +0 -1
  76. package/dist/commands/context_demo.js.map +0 -1
  77. package/dist/commands/mac-example.d.ts.map +0 -1
  78. package/dist/commands/mac-example.js.map +0 -1
  79. package/dist/commands/timeout_demo.d.ts.map +0 -1
  80. package/dist/commands/timeout_demo.js +0 -48
  81. package/dist/commands/timeout_demo.js.map +0 -1
  82. package/dist/src/lib/common_groups.d.ts.map +0 -1
  83. package/dist/src/lib/common_groups.js.map +0 -1
  84. package/dist/src/lib/foo.d.ts +0 -3
  85. package/dist/src/lib/foo.d.ts.map +0 -1
  86. package/dist/src/lib/foo.js +0 -7
  87. package/dist/src/lib/foo.js.map +0 -1
  88. package/dist/src/lib/programmatic.d.ts.map +0 -1
  89. package/dist/src/lib/programmatic.js.map +0 -1
  90. package/dist/src/lib/trace_formatter.d.ts +0 -9
  91. package/dist/src/lib/trace_formatter.d.ts.map +0 -1
  92. package/dist/src/lib/trace_formatter.js +0 -148
  93. package/dist/src/lib/trace_formatter.js.map +0 -1
@@ -1,67 +1,59 @@
1
1
  /**
2
- * 单条命令执行模块:执行单条或按顺序执行多条命令,不涉及 group 概念。
3
- * 命令执行失败的判断(Mac / Linux / Windows 通用):
4
- * - 进程正常退出:exitCode === 0 为成功,否则为失败
5
- * - 进程被信号终止(Unix):code 为 null,视为失败
6
- * - spawn 报错(如找不到命令):视为失败
2
+ * 单条与顺序多命令执行(不含 group 分块)。
3
+ *
4
+ * 成功与否:`exitCode === 0` 为成功;信号结束或 `spawn` 失败为失败(与平台一致)。
7
5
  */
8
6
  import { type ChildProcess } from "node:child_process";
9
- import type { CommandContext, CommandDef, CommandResult } from "./types.js";
10
- /** 当前系统是否支持该命令类型:embed 全平台;linux/mac/windows 仅对应平台 */
7
+ import { type CommandContext, type CommandDef, type CommandResult } from "./types.js";
8
+ /** `embed` / `builtin-function` 恒为 true;其余需与 {@link getCurrentPlatformKind} 一致 */
11
9
  export declare function isSupportedOnCurrentPlatform(cmd: CommandDef): boolean;
12
10
  export interface ExecuteOneOptions {
13
- /** 是否将子进程 stdout/stderr 实时打印到当前进程;默认 true */
11
+ /** true(默认)时转发子进程的 stdout/stderr */
14
12
  streamOutput?: boolean;
15
- /** 当命令配置了 background 时,将 spawn 出的子进程传入此回调,由调用方统一管理(如结束后台时 kill) */
13
+ /** `background` 命令的子进程交由调用方管理(卸载、收尾等) */
16
14
  registerBackgroundProcess?: (child: ChildProcess) => void;
17
- /** 传入当前命令上下文,供 builtin-function 使用 */
15
+ /** 参见 {@link RunnerExecuteOptions.registerPendingBackgroundSpawn} */
16
+ registerPendingBackgroundSpawn?: (done: Promise<void>) => void;
17
+ /** 内置函数的命令上下文 */
18
18
  commandContext?: CommandContext;
19
19
  }
20
- /** 执行单条命令 */
20
+ /** 执行单个 {@link CommandDef} */
21
21
  export declare function executeOne(cmd: CommandDef, options?: ExecuteOneOptions): Promise<CommandResult>;
22
22
  export interface ExecuteAllOptions {
23
23
  /**
24
- * 当某条命令执行失败时是否终止后续命令。
25
- * 默认 false:忽略命令执行状态,继续执行后续命令。
26
- * 设为 true:一旦有命令失败(exitCode !== 0 或进程被信号终止等),立即停止。
24
+ * 遇失败是否中止后续命令。默认 `false`:继续执行;`true`:非零退出码或信号终止即停止。
27
25
  */
28
26
  stopOnError?: boolean;
27
+ /**
28
+ * 为 `true` 时经 `attachQuietSilent`(src/logger)应用日志降噪,并协同 `hiperf_txt_parser`;
29
+ * 默认 `streamOutput === false`,且不将非流式缓冲结果回显至终端。
30
+ */
29
31
  silent?: boolean;
30
32
  /**
31
- * 是否将子进程输出实时打印(非 silent 时默认 true)。
32
- * 为 true 时 stdout/stderr 会边执行边输出,结束后不再重复打印整段内容。
33
+ * 子进程标准流是否实时输出。未指定且非 `silent` 时默认为 `true`;为 `true` 时不在结束时重复整段缓冲输出。
33
34
  */
34
35
  streamOutput?: boolean;
35
- /**
36
- * 进度条偏移量(用于跨块累计进度),通常由调用方内部使用。
37
- * 例如前面已经执行了 5 条命令,则 offset = 5。
38
- */
36
+ /** 当前批次首条命令在全局序列中的序位偏移(跨块累计进度) */
39
37
  offset?: number;
40
- /**
41
- * 所有待执行命令的总数(用于显示 cur/all)。
42
- * 不传则默认使用当前批次 commands.length + offset。
43
- */
38
+ /** 全局待执行命令总数(用于 `cur/total`);缺省为 `commands.length + offset` */
44
39
  total?: number;
45
40
  /**
46
- * 若传入,则将本批次启动的后台子进程追加到该数组,由调用方在全部任务结束后统一处理;
47
- * 此时本函数不会在末尾自行 wait/kill 后台进程。
41
+ * 将本批次后台子进程追加至该数组,由调用方统一回收;为真时本函数末尾不处理后台进程。
48
42
  */
49
43
  aggregateBackgroundChildren?: ChildProcess[];
50
44
  /**
51
- * 当未使用 aggregateBackgroundChildren 时生效:
52
- * true — 等待后台进程自然退出;false — 前台结束后优雅结束后台进程。
45
+ * 未使用 `aggregateBackgroundChildren` 时:是否等待后台进程自然退出(否则在前台结束后终止后台进程)。
53
46
  */
54
47
  waitForBackground?: boolean;
55
- /**
56
- * 可选:复用并更新同一份命令上下文(跨多次 executeAll / 跨 group 传递变量)。
57
- * 传入的对象会被就地写入;未传时仅在本次 executeAll 内有效。
58
- */
48
+ /** 跨 `executeAll` / 分组复用的命令上下文;传入则原地更新 */
59
49
  commandContext?: CommandContext;
60
50
  }
61
51
  /**
62
- * 前台命令链结束后对后台子进程收尾:wait true 则等到全部退出,否则优雅 kill。
52
+ * 前台队列结束后处理后台子进程:`wait === true` 时等待自然退出,否则发送终止并回收。
53
+ */
54
+ export declare function finalizeBackgroundProcesses(children: ChildProcess[], wait: boolean): Promise<void>;
55
+ /**
56
+ * 顺序执行命令列表;不包含组间间隔。成功/失败语义同 `executeOne`。
63
57
  */
64
- export declare function finalizeBackgroundProcesses(children: ChildProcess[], wait: boolean, silent: boolean): Promise<void>;
65
- /** 按顺序执行多条命令(无组间间隔)。失败判断见 executeOne,支持 Mac/Linux/Windows。 */
66
58
  export declare function executeAll(commands: CommandDef[], options?: ExecuteAllOptions): Promise<CommandResult[]>;
67
59
  //# sourceMappingURL=runCommand.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runCommand.d.ts","sourceRoot":"","sources":["../../src/runCommand.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAO9D,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,aAAa,EAEd,MAAM,YAAY,CAAC;AAYpB,sDAAsD;AACtD,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAOrE;AAYD,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mEAAmE;IACnE,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1D,sCAAsC;IACtC,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,aAAa;AACb,wBAAsB,UAAU,CAC9B,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,aAAa,CAAC,CA4CxB;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,2BAA2B,CAAC,EAAE,YAAY,EAAE,CAAC;IAC7C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AA8MD;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,YAAY,EAAE,EACxB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,8DAA8D;AAC9D,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,UAAU,EAAE,EACtB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,aAAa,EAAE,CAAC,CAsF1B"}
1
+ {"version":3,"file":"runCommand.d.ts","sourceRoot":"","sources":["../../src/runCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAapB,kFAAkF;AAClF,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAOrE;AAYD,MAAM,WAAW,iBAAiB;IAChC,sCAAsC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yCAAyC;IACzC,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1D,qEAAqE;IACrE,8BAA8B,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC/D,iBAAiB;IACjB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,8BAA8B;AAC9B,wBAAsB,UAAU,CAC9B,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,aAAa,CAAC,CAkDxB;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACxB;;;SAGK;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,2BAA2B,CAAC,EAAE,YAAY,EAAE,CAAC;IAC7C;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,0CAA0C;IAC1C,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAsMD;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,YAAY,EAAE,EACxB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,UAAU,EAAE,EACtB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,aAAa,EAAE,CAAC,CA2G1B"}
@@ -1,18 +1,17 @@
1
1
  /**
2
- * 单条命令执行模块:执行单条或按顺序执行多条命令,不涉及 group 概念。
3
- * 命令执行失败的判断(Mac / Linux / Windows 通用):
4
- * - 进程正常退出:exitCode === 0 为成功,否则为失败
5
- * - 进程被信号终止(Unix):code 为 null,视为失败
6
- * - spawn 报错(如找不到命令):视为失败
2
+ * 单条与顺序多命令执行(不含 group 分块)。
3
+ *
4
+ * 成功与否:`exitCode === 0` 为成功;信号结束或 `spawn` 失败为失败(与平台一致)。
7
5
  */
8
6
  import { spawn } from "node:child_process";
9
7
  import { platform } from "node:os";
10
- import { CommandKind, createCommandContext, getCurrentPlatformKind, } from "./types.js";
8
+ import { CommandKind, createCommandContext, getCurrentPlatformKind, unsupportedBackgroundCommandResult, } from "./types.js";
9
+ import { attachQuietSilent, logger } from "./logger.js";
11
10
  import { BuiltinFunctionCommandRunner, EmbedCommandRunner, ShellCommandRunner, } from "./runners/index.js";
12
11
  const currentPlatform = platform();
13
12
  const currentPlatformKind = getCurrentPlatformKind();
14
13
  const TEMPLATE_VAR_PATTERN = /\{\{(\w+)\}\}/g;
15
- /** 当前系统是否支持该命令类型:embed 全平台;linux/mac/windows 仅对应平台 */
14
+ /** `embed` / `builtin-function` 恒为 true;其余需与 {@link getCurrentPlatformKind} 一致 */
16
15
  export function isSupportedOnCurrentPlatform(cmd) {
17
16
  if (cmd.kind === CommandKind.Embed ||
18
17
  cmd.kind === CommandKind.BuiltinFunction)
@@ -27,9 +26,9 @@ const commandRunners = [
27
26
  function getCommandRunner(cmd) {
28
27
  return commandRunners.find((runner) => runner.canRun(cmd));
29
28
  }
30
- /** 执行单条命令 */
29
+ /** 执行单个 {@link CommandDef} */
31
30
  export async function executeOne(cmd, options = {}) {
32
- const { streamOutput = true, registerBackgroundProcess, commandContext, } = options;
31
+ const { streamOutput = true, registerBackgroundProcess, registerPendingBackgroundSpawn, commandContext, } = options;
33
32
  const start = Date.now();
34
33
  const runner = getCommandRunner(cmd);
35
34
  if (!runner) {
@@ -43,10 +42,15 @@ export async function executeOne(cmd, options = {}) {
43
42
  durationMs: Date.now() - start,
44
43
  };
45
44
  }
45
+ const unsupportedBg = unsupportedBackgroundCommandResult(cmd, start);
46
+ if (unsupportedBg) {
47
+ return unsupportedBg;
48
+ }
46
49
  try {
47
50
  return await runner.execute(cmd, {
48
51
  streamOutput,
49
52
  registerBackgroundProcess,
53
+ registerPendingBackgroundSpawn,
50
54
  commandContext: commandContext ?? createCommandContext(),
51
55
  start,
52
56
  });
@@ -68,10 +72,7 @@ export async function executeOne(cmd, options = {}) {
68
72
  };
69
73
  }
70
74
  }
71
- /**
72
- * 将字符串中的 {{varName}} 占位符替换为上下文中的变量值。
73
- * 未找到变量时保留原占位符,便于排查。
74
- */
75
+ /** 将 `{{name}}` 替换为上下文字符串;未绑定则保留原样 */
75
76
  function expandTemplate(str, context) {
76
77
  if (!str.includes("{{"))
77
78
  return str;
@@ -84,14 +85,11 @@ function expandTemplate(str, context) {
84
85
  return value;
85
86
  }
86
87
  const valueType = value === null ? "null" : typeof value;
87
- console.error(`[模板变量解析] 上下文变量 "${key}" 类型为 ${valueType},{{${key}}} 仅支持 string,已保留原占位符`);
88
+ logger.error(`[模板变量解析] 上下文变量 "${key}" 类型为 ${valueType},{{${key}}} 仅支持 string,已保留原占位符`);
88
89
  return match;
89
90
  });
90
91
  }
91
- /**
92
- * 基于当前上下文,对命令中的各个字符串字段进行变量展开。
93
- * - run / file / args / cwd / description 支持 {{var}} 占位符。
94
- */
92
+ /** 在 `run`、`file`、`args`、`cwd`、`description` 上对 `{{var}}` 占位符做解析 */
95
93
  function applyContextToCommand(cmd, context) {
96
94
  const runHasTemplate = cmd.run != null && cmd.run.includes("{{");
97
95
  const fileHasTemplate = cmd.file != null && cmd.file.includes("{{");
@@ -123,9 +121,7 @@ function applyContextToCommand(cmd, context) {
123
121
  }
124
122
  return next;
125
123
  }
126
- /**
127
- * 根据 captureToVar 配置,从命令执行结果中提取变量值并写入上下文。
128
- */
124
+ /** 按 {@link CaptureToVarDef} 将 `CommandResult` 写入 `CommandContext` */
129
125
  function applyCaptureToContext(capture, result, context, regexCache) {
130
126
  if (!capture)
131
127
  return;
@@ -149,7 +145,7 @@ function applyCaptureToContext(capture, result, context, regexCache) {
149
145
  regexCache.set(capture.pattern, re);
150
146
  }
151
147
  if (re === null) {
152
- // 正则不合法时直接跳过,不影响后续命令执行
148
+ // 非法正则:跳过本项,不中断后续命令
153
149
  return;
154
150
  }
155
151
  let match = null;
@@ -214,7 +210,7 @@ async function forceKillChildProcess(child) {
214
210
  /* ignore */
215
211
  }
216
212
  }
217
- /** 优雅结束后台进程:先 SIGTERM,等待一段时间后未退出则 SIGKILL */
213
+ /** `SIGTERM`,超时后 `SIGKILL`(Windows 使用 `taskkill`) */
218
214
  async function gracefulKillBackground(children) {
219
215
  if (children.length === 0)
220
216
  return Promise.resolve();
@@ -233,7 +229,7 @@ async function gracefulKillBackground(children) {
233
229
  ]);
234
230
  await Promise.all(children.map((child) => forceKillChildProcess(child)));
235
231
  }
236
- /** 等待若干子进程自然退出(已退出的立即完成) */
232
+ /** 阻塞至子进程 `exit`(已退出则立即返回) */
237
233
  function waitForBackgroundProcesses(children) {
238
234
  return Promise.all(children.map((c) => new Promise((resolve) => {
239
235
  if (c.exitCode !== null || c.signalCode !== null) {
@@ -245,29 +241,26 @@ function waitForBackgroundProcesses(children) {
245
241
  }))).then(() => { });
246
242
  }
247
243
  /**
248
- * 前台命令链结束后对后台子进程收尾:wait true 则等到全部退出,否则优雅 kill。
244
+ * 前台队列结束后处理后台子进程:`wait === true` 时等待自然退出,否则发送终止并回收。
249
245
  */
250
- export async function finalizeBackgroundProcesses(children, wait, silent) {
246
+ export async function finalizeBackgroundProcesses(children, wait) {
251
247
  if (children.length === 0)
252
248
  return;
253
249
  if (wait) {
254
- if (!silent) {
255
- console.log(`\n等待 ${children.length} 个后台进程全部结束后退出...`);
256
- }
250
+ logger.info(`\n等待 ${children.length} 个后台进程全部结束后退出...`);
257
251
  await waitForBackgroundProcesses(children);
258
- if (!silent) {
259
- console.log("所有后台进程已结束。\n");
260
- }
252
+ logger.info("所有后台进程已结束。\n");
261
253
  }
262
254
  else {
263
- if (!silent) {
264
- console.log(`\n正在结束 ${children.length} 个后台进程...`);
265
- }
255
+ logger.info(`\n正在结束 ${children.length} 个后台进程...`);
266
256
  await gracefulKillBackground(children);
267
257
  }
268
258
  }
269
- /** 按顺序执行多条命令(无组间间隔)。失败判断见 executeOne,支持 Mac/Linux/Windows。 */
259
+ /**
260
+ * 顺序执行命令列表;不包含组间间隔。成功/失败语义同 `executeOne`。
261
+ */
270
262
  export async function executeAll(commands, options = {}) {
263
+ const detachQuiet = attachQuietSilent(options.silent ?? false);
271
264
  const { stopOnError = false, silent = false, streamOutput = !silent, offset = 0, total: explicitTotal, aggregateBackgroundChildren, waitForBackground = false, commandContext: sharedContext, } = options;
272
265
  const results = [];
273
266
  const context = sharedContext ?? createCommandContext();
@@ -275,6 +268,7 @@ export async function executeAll(commands, options = {}) {
275
268
  const backgroundTarget = aggregateBackgroundChildren ?? localBackgroundChildren;
276
269
  const total = explicitTotal ?? commands.length + offset;
277
270
  const captureRegexCache = new Map();
271
+ const pendingBackgroundSpawns = [];
278
272
  const getDescriptionForLog = (cmd) => {
279
273
  if (cmd.description)
280
274
  return cmd.description;
@@ -289,48 +283,65 @@ export async function executeAll(commands, options = {}) {
289
283
  const registerBackground = (cmd) => (child) => {
290
284
  backgroundTarget.push(child);
291
285
  };
292
- for (let index = 0; index < commands.length; index++) {
293
- const originalCmd = commands[index];
294
- const cmd = applyContextToCommand(originalCmd, context);
295
- const cur = offset + index + 1;
296
- const all = total;
297
- if (!silent) {
298
- const suffix = cmd.background ? " (后台)" : "";
299
- console.log(`\n▶ (${cur}/${all}) [${cmd.kind}] ${getDescriptionForLog(cmd)}${suffix}`);
300
- }
301
- const result = await executeOne(cmd, {
302
- streamOutput,
303
- registerBackgroundProcess: cmd.background
304
- ? registerBackground(cmd)
305
- : undefined,
306
- commandContext: context,
307
- });
308
- results.push(result);
309
- applyCaptureToContext(originalCmd.captureToVar, result, context, captureRegexCache);
310
- if (!silent) {
311
- if (!streamOutput) {
312
- if (result.stdout)
313
- console.log(result.stdout);
314
- if (result.stderr)
315
- console.error(result.stderr);
286
+ try {
287
+ for (let index = 0; index < commands.length; index++) {
288
+ const originalCmd = commands[index];
289
+ const cmd = applyContextToCommand(originalCmd, context);
290
+ const cur = offset + index + 1;
291
+ const all = total;
292
+ const bgDelayMs = Math.max(0, cmd.backgroundDelayMs ?? 0);
293
+ const suffix = cmd.background
294
+ ? bgDelayMs > 0
295
+ ? ` (后台,${bgDelayMs}ms 后启动)`
296
+ : " (后台)"
297
+ : "";
298
+ logger.info(`\n▶ (${cur}/${all}) [${cmd.kind}] ${getDescriptionForLog(cmd)}${suffix}`);
299
+ const result = await executeOne(cmd, {
300
+ streamOutput,
301
+ registerBackgroundProcess: cmd.background
302
+ ? registerBackground(cmd)
303
+ : undefined,
304
+ registerPendingBackgroundSpawn: cmd.background
305
+ ? (done) => {
306
+ pendingBackgroundSpawns.push(done);
307
+ }
308
+ : undefined,
309
+ commandContext: context,
310
+ });
311
+ results.push(result);
312
+ applyCaptureToContext(originalCmd.captureToVar, result, context, captureRegexCache);
313
+ if (!silent) {
314
+ if (!streamOutput) {
315
+ if (result.stdout)
316
+ console.log(result.stdout);
317
+ if (result.stderr)
318
+ console.error(result.stderr);
319
+ }
316
320
  }
317
321
  if (cmd.background) {
318
- console.log(` 已放入后台执行`);
322
+ logger.info(bgDelayMs > 0
323
+ ? ` 已调度后台执行(${bgDelayMs}ms 后启动)`
324
+ : ` 已放入后台执行`);
319
325
  }
320
326
  else {
321
- console.log(` 退出码: ${result.exitCode}, 耗时: ${result.durationMs}ms`);
327
+ logger.info(` 退出码: ${result.exitCode}, 耗时: ${result.durationMs}ms`);
322
328
  }
329
+ if (!result.success && stopOnError) {
330
+ logger.error(`命令失败,已停止。请检查运行环境并尝试重新运行。`);
331
+ break;
332
+ }
333
+ }
334
+ if (pendingBackgroundSpawns.length > 0) {
335
+ await Promise.all(pendingBackgroundSpawns);
323
336
  }
324
- if (!result.success && stopOnError) {
325
- if (!silent)
326
- console.error(`命令失败,已停止。`);
327
- break;
337
+ // 若由调用方聚合 `aggregateBackgroundChildren`,此处不做收尾;否则回收本批次后台进程
338
+ if (!aggregateBackgroundChildren && localBackgroundChildren.length > 0) {
339
+ await finalizeBackgroundProcesses(localBackgroundChildren, waitForBackground);
328
340
  }
341
+ return results;
329
342
  }
330
- // 由调用方聚合后台进程时,不在此处置;否则本批次结束后统一收尾
331
- if (!aggregateBackgroundChildren && localBackgroundChildren.length > 0) {
332
- await finalizeBackgroundProcesses(localBackgroundChildren, waitForBackground, silent);
343
+ finally {
344
+ detachQuiet();
333
345
  }
334
- return results;
335
346
  }
336
347
  //# sourceMappingURL=runCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runCommand.js","sourceRoot":"","sources":["../../src/runCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runCommand.js","sourceRoot":"","sources":["../../src/runCommand.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,27 @@
1
1
  import type { CommandDef, CommandResult, Groups, RunOptions } from "./types.js";
2
- /** 组名 + 执行次数 */
2
+ /** 组名及其重复执行次数 */
3
3
  export interface GroupSpec {
4
4
  name: string;
5
5
  repeat: number;
6
6
  }
7
- /** 根据组配置与组名顺序,得到要执行的命令列表(默认仅包含当前系统支持的命令) */
7
+ /** 按固定组序展开命令;默认过滤为当前平台可执行的条目 */
8
8
  export declare function getCommandsToRun(groups: Groups, groupOrder: string[], options?: {
9
9
  ignorePlatform?: boolean;
10
10
  }): CommandDef[];
11
- /**
12
- * 根据组配置与「组名:次数」规格,得到要执行的命令列表(默认仅包含当前系统支持的命令)。
13
- * 每组按 repeat 重复若干次后再接下一组。
14
- */
11
+ /** 按 `GroupSpec`(含 `repeat`)构造线性命令列表;组内顺序执行后再展开下一规格 */
15
12
  export declare function getCommandsToRunWithRepeat(groups: Groups, specs: GroupSpec[], options?: {
16
13
  ignorePlatform?: boolean;
17
14
  }): CommandDef[];
18
- /**
19
- * 将组规格展开为「块」数组:每一块为一次组执行(一组命令的一轮),
20
- * 用于在块与块之间插入间隔(对重复执行的 group 也生效)。
21
- */
15
+ /** 将组规格切成多块(每块即一轮组内命令);块界用于施加 `intervalMs` */
22
16
  export declare function getGroupChunks(groups: Groups, specs: GroupSpec[], options?: {
23
17
  ignorePlatform?: boolean;
24
18
  }): CommandDef[][];
25
19
  export interface RunGroupChunksOptions extends RunOptions {
26
- /** 每组命令之间的执行间隔(毫秒),0 或无则不间隔 */
20
+ /** 相邻块之间的等待时间(毫秒);`0` 或缺省表示无等待 */
27
21
  intervalMs?: number;
28
22
  }
29
23
  /**
30
- * 按块顺序执行:每块内顺序执行命令,块与块之间可选间隔(对重复执行的 group 也生效)。
24
+ * 按块依次执行;块内顺序执行,块间可插入 `intervalMs` 等待(亦适用于 `repeat` 产生的多块)。
31
25
  */
32
26
  export declare function runGroupChunks(chunks: CommandDef[][], options?: RunGroupChunksOptions): Promise<{
33
27
  results: CommandResult[];
@@ -1 +1 @@
1
- {"version":3,"file":"runGroups.d.ts","sourceRoot":"","sources":["../../src/runGroups.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,UAAU,EACV,aAAa,EACb,MAAM,EACN,UAAU,EACX,MAAM,YAAY,CAAC;AAcpB,gBAAgB;AAChB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4CAA4C;AAC5C,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,UAAU,EAAE,CAMd;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,UAAU,EAAE,CAoBd;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,UAAU,EAAE,EAAE,CAoBhB;AAMD,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,UAAU,EAAE,EAAE,EACtB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC;IAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CA8ExD"}
1
+ {"version":3,"file":"runGroups.d.ts","sourceRoot":"","sources":["../../src/runGroups.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,UAAU,EACV,aAAa,EACb,MAAM,EACN,UAAU,EACX,MAAM,YAAY,CAAC;AAcpB,iBAAiB;AACjB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,gCAAgC;AAChC,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,UAAU,EAAE,CAMd;AAED,uDAAuD;AACvD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,UAAU,EAAE,CAoBd;AAED,8CAA8C;AAC9C,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,UAAU,EAAE,EAAE,CAoBhB;AAMD,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,UAAU,EAAE,EAAE,EACtB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC;IAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CA6ExD"}
@@ -1,3 +1,4 @@
1
+ import { attachQuietSilent, logger } from "./logger.js";
1
2
  import { createCommandContext } from "./types.js";
2
3
  import { isSupportedOnCurrentPlatform } from "./runCommand.js";
3
4
  import { executeAll, finalizeBackgroundProcesses } from "./runCommand.js";
@@ -5,14 +6,11 @@ function withSignalHandler(signal, handler) {
5
6
  process.on(signal, handler);
6
7
  return () => process.off(signal, handler);
7
8
  }
8
- /** 根据组配置与组名顺序,得到要执行的命令列表(默认仅包含当前系统支持的命令) */
9
+ /** 按固定组序展开命令;默认过滤为当前平台可执行的条目 */
9
10
  export function getCommandsToRun(groups, groupOrder, options = {}) {
10
11
  return getCommandsToRunWithRepeat(groups, groupOrder.map((name) => ({ name, repeat: 1 })), options);
11
12
  }
12
- /**
13
- * 根据组配置与「组名:次数」规格,得到要执行的命令列表(默认仅包含当前系统支持的命令)。
14
- * 每组按 repeat 重复若干次后再接下一组。
15
- */
13
+ /** 按 `GroupSpec`(含 `repeat`)构造线性命令列表;组内顺序执行后再展开下一规格 */
16
14
  export function getCommandsToRunWithRepeat(groups, specs, options = {}) {
17
15
  const { ignorePlatform = false } = options;
18
16
  const list = [];
@@ -35,10 +33,7 @@ export function getCommandsToRunWithRepeat(groups, specs, options = {}) {
35
33
  }
36
34
  return list;
37
35
  }
38
- /**
39
- * 将组规格展开为「块」数组:每一块为一次组执行(一组命令的一轮),
40
- * 用于在块与块之间插入间隔(对重复执行的 group 也生效)。
41
- */
36
+ /** 将组规格切成多块(每块即一轮组内命令);块界用于施加 `intervalMs` */
42
37
  export function getGroupChunks(groups, specs, options = {}) {
43
38
  const { ignorePlatform = false } = options;
44
39
  const chunks = [];
@@ -65,16 +60,17 @@ function sleep(ms) {
65
60
  return new Promise((r) => setTimeout(r, ms));
66
61
  }
67
62
  /**
68
- * 按块顺序执行:每块内顺序执行命令,块与块之间可选间隔(对重复执行的 group 也生效)。
63
+ * 按块依次执行;块内顺序执行,块间可插入 `intervalMs` 等待(亦适用于 `repeat` 产生的多块)。
69
64
  */
70
65
  export async function runGroupChunks(chunks, options = {}) {
66
+ const detachQuietRun = attachQuietSilent(options.silent ?? false);
71
67
  const { stopOnError = false, silent = false, intervalMs = 0, waitForBackground = false, } = options;
72
68
  const allResults = [];
73
69
  let failed = false;
74
70
  const aggregateBackground = [];
75
71
  let shuttingDown = false;
76
72
  const cleanupHandlers = [];
77
- /** group 块共享,使 captureToVar 与 {{var}} 可在不同组之间传递 */
73
+ /** 跨块共享,供 `captureToVar``{{var}}` 贯通 */
78
74
  const commandContext = createCommandContext();
79
75
  const onSignal = (signal) => {
80
76
  if (shuttingDown)
@@ -82,11 +78,9 @@ export async function runGroupChunks(chunks, options = {}) {
82
78
  shuttingDown = true;
83
79
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
84
80
  (async () => {
85
- if (!silent) {
86
- console.log(`\n收到 ${signal},正在清理后台进程...`);
87
- }
81
+ logger.info(`\n收到 ${signal},正在清理后台进程...`);
88
82
  try {
89
- await finalizeBackgroundProcesses(aggregateBackground, false, true);
83
+ await finalizeBackgroundProcesses(aggregateBackground, false);
90
84
  }
91
85
  finally {
92
86
  process.exit(130);
@@ -98,13 +92,13 @@ export async function runGroupChunks(chunks, options = {}) {
98
92
  if (process.platform === "win32") {
99
93
  cleanupHandlers.push(withSignalHandler("SIGBREAK", () => onSignal("SIGBREAK")));
100
94
  }
101
- // 计算全局命令总数,用于跨组显示统一的 cur/all 进度。
95
+ // 汇总命令数以生成全局 cur/total
102
96
  const totalCommands = chunks.reduce((sum, c) => sum + c.length, 0);
103
97
  let executedCount = 0;
104
98
  try {
105
99
  for (let i = 0; i < chunks.length; i++) {
106
- if (i > 0 && intervalMs > 0 && !silent) {
107
- console.log(`\n⏱ 等待 ${intervalMs}ms...`);
100
+ if (i > 0 && intervalMs > 0) {
101
+ logger.info(`\n⏱ 等待 ${intervalMs}ms...`);
108
102
  await sleep(intervalMs);
109
103
  }
110
104
  const chunk = chunks[i];
@@ -127,11 +121,12 @@ export async function runGroupChunks(chunks, options = {}) {
127
121
  break;
128
122
  }
129
123
  if (aggregateBackground.length > 0) {
130
- await finalizeBackgroundProcesses(aggregateBackground, waitForBackground, silent);
124
+ await finalizeBackgroundProcesses(aggregateBackground, waitForBackground);
131
125
  }
132
126
  }
133
127
  finally {
134
128
  cleanupHandlers.forEach((dispose) => dispose());
129
+ detachQuietRun();
135
130
  }
136
131
  return { results: allResults, failed };
137
132
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runGroups.js","sourceRoot":"","sources":["../../src/runGroups.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runGroups.js","sourceRoot":"","sources":["../../src/runGroups.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { CommandDef, CommandResult } from "../types.js";
2
2
  import type { CommandRunner, RunnerExecuteOptions } from "./types.js";
3
+ /** `CommandKind.BuiltinFunction`:调用 `CommandDef.func` */
3
4
  export declare class BuiltinFunctionCommandRunner implements CommandRunner {
4
5
  canRun(cmd: CommandDef): boolean;
5
6
  execute(cmd: CommandDef, options: RunnerExecuteOptions): Promise<CommandResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"builtinFunctionRunner.d.ts","sourceRoot":"","sources":["../../../src/runners/builtinFunctionRunner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEtE,qBAAa,4BAA6B,YAAW,aAAa;IAChE,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAI1B,OAAO,CACX,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,aAAa,CAAC;CAgD1B"}
1
+ {"version":3,"file":"builtinFunctionRunner.d.ts","sourceRoot":"","sources":["../../../src/runners/builtinFunctionRunner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEtE,yDAAyD;AACzD,qBAAa,4BAA6B,YAAW,aAAa;IAChE,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAI1B,OAAO,CACX,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,aAAa,CAAC;CAuC1B"}