@mpis/run 0.0.10 → 0.0.11

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/lib/bin.js CHANGED
@@ -1,33 +1,24 @@
1
- import { functionToDisposable, humanDate, prettyFormatError, registerGlobalLifecycle, toDisposable } from '@idlebox/common';
1
+ import { functionToDisposable, humanDate, prettyPrintError, registerGlobalLifecycle } from '@idlebox/common';
2
2
  import { logger } from '@idlebox/logger';
3
3
  import { registerNodejsExitHandler, setExitCodeIfNot, shutdown } from '@idlebox/node';
4
4
  import { channelClient } from '@mpis/client';
5
- import { CompileError, ModeKind, ProcessIPCClient, WorkersManager } from '@mpis/server';
5
+ import { ProcessIPCClient } from '@mpis/server';
6
6
  import { rmSync } from 'node:fs';
7
7
  import { dumpConfig } from './commands/config.js';
8
- import { context, parseCliArgs } from './common/args.js';
9
- import { loadConfigFile } from './common/config-file.js';
8
+ import { context } from './common/args.js';
9
+ import { config } from './common/config-file.js';
10
+ import { addBreakModeDebugCommands } from './common/interactive.js';
11
+ import { initializeWorkers, workersManager } from './common/manager.js';
10
12
  import { projectRoot } from './common/paths.js';
13
+ import { reprintWatchModeError } from './common/print-screen.js';
11
14
  import { initializeStdin, registerCommand } from './common/stdin.js';
12
15
  registerNodejsExitHandler();
13
- parseCliArgs();
14
- let execute_index = 0;
15
- const start = Date.now();
16
- registerGlobalLifecycle(toDisposable(() => {
17
- logger.info `Operation completed in ${humanDate.delta(Date.now() - start)} (${process.exitCode !== 0 ? 'failed' : 'success'}).`;
18
- }));
19
16
  registerCommand({
20
17
  name: ['status', 's'],
21
18
  description: '显示当前状态',
22
19
  callback: () => reprintWatchModeError(),
23
20
  });
24
- process.title = `MpisRun`;
25
21
  logger.info `Running command "${context.command}" in ${projectRoot}`;
26
- const defaultNoClear = logger.debug.isEnabled || !process.stderr.isTTY;
27
- let workersManager;
28
- const config = loadConfigFile(context.watchMode);
29
- logger.verbose `loaded config file: ${config}`;
30
- const errors = new Map();
31
22
  switch (context.command) {
32
23
  case 'clean':
33
24
  executeClean();
@@ -46,7 +37,7 @@ switch (context.command) {
46
37
  setExitCodeIfNot(0);
47
38
  }
48
39
  catch (e) {
49
- logger.error `failed ${context.command} project: ${e.message}`;
40
+ prettyPrintError(`failed ${context.command} project`, e);
50
41
  shutdown(1);
51
42
  }
52
43
  }
@@ -58,15 +49,13 @@ switch (context.command) {
58
49
  }
59
50
  initializeStdin();
60
51
  await executeBuild().catch((e) => {
61
- logger.error `failed ${context.command} project: ${e.message}`;
52
+ prettyPrintError(`failed ${context.command} project`, e);
62
53
  shutdown(1);
63
54
  });
64
55
  break;
65
56
  }
66
- // channelClient.displayName = `MpisRun`;
67
57
  async function executeBuild() {
68
58
  let shuttingDown = false;
69
- workersManager = new WorkersManager(context.watchMode ? ModeKind.Watch : ModeKind.Build);
70
59
  initializeWorkers();
71
60
  const graph = workersManager.finalize();
72
61
  workersManager.onTerminate((trans) => {
@@ -92,8 +81,7 @@ async function executeBuild() {
92
81
  }
93
82
  channelClient.start();
94
83
  if (context.breakMode) {
95
- logger.warn `Break mode enabled, waiting for input command...`;
96
- addDebugCommand();
84
+ addBreakModeDebugCommands();
97
85
  return;
98
86
  }
99
87
  logger.verbose `Workers initialized, starting execution...`;
@@ -111,42 +99,6 @@ function executeClean() {
111
99
  }
112
100
  logger.success `Cleaned up ${config.clean.length} folders.`;
113
101
  }
114
- function initializeWorkers() {
115
- let last;
116
- for (const title of config.buildTitles) {
117
- const cmds = config.build.get(title);
118
- if (!cmds)
119
- throw logger.fatal `program state error, no build command "${title}"`;
120
- if (!cmds.env['DEBUG'])
121
- cmds.env['DEBUG'] = '';
122
- if (!cmds.env['DEBUG_LEVEL'])
123
- cmds.env['DEBUG_LEVEL'] = '';
124
- const worker = new ProcessIPCClient(title.replace(/\s+/g, ''), cmds.command, cmds.cwd, cmds.env);
125
- for (const path of config.additionalPaths) {
126
- worker.pathvar.add(path);
127
- }
128
- worker.displayTitle = `run:${cmds.command[0]}`;
129
- workersManager.addWorker(worker, last ? [last._id] : []);
130
- let nodeFirstTime = true;
131
- worker.onFailure((e) => {
132
- errors.set(worker, e);
133
- reprintWatchModeError(nodeFirstTime);
134
- nodeFirstTime = false;
135
- sendStatus();
136
- });
137
- worker.onSuccess(() => {
138
- errors.set(worker, null);
139
- if (nodeFirstTime) {
140
- nodeFirstTime = false;
141
- }
142
- else {
143
- reprintWatchModeError();
144
- }
145
- sendStatus();
146
- });
147
- last = worker;
148
- }
149
- }
150
102
  const cls = /\x1Bc/g;
151
103
  function printFailedRunError(worker, message) {
152
104
  if (context.watchMode && process.stderr.isTTY)
@@ -165,116 +117,4 @@ function printFailedRunError(worker, message) {
165
117
  logger.error `"${worker._id}" ${message}`;
166
118
  shutdown(1);
167
119
  }
168
- let printTo;
169
- function reprintWatchModeError(noClear) {
170
- if (printTo)
171
- clearTimeout(printTo);
172
- printTo = setTimeout(() => {
173
- printTo = undefined;
174
- if (context.watchMode) {
175
- if (!noClear && !defaultNoClear)
176
- process.stderr.write('\x1Bc');
177
- }
178
- const graph = workersManager.finalize();
179
- console.error('%s\n%s', graph.debugFormatList(), graph.debugFormatSummary());
180
- printAllErrors();
181
- }, 50);
182
- }
183
- function addDebugCommand() {
184
- registerCommand({
185
- name: ['continue', 'c'],
186
- description: '开始执行',
187
- callback: () => {
188
- workersManager.finalize().startup();
189
- },
190
- });
191
- registerCommand({
192
- name: ['debug'],
193
- description: '切换调试模式(仅在启动前有效)',
194
- callback: (text) => {
195
- const [_, index, on_off] = text.split(/\s+/);
196
- const list = workersManager._allWorkers;
197
- const worker = list[Number(index)];
198
- if (!worker) {
199
- logger.error `worker index out of range: ${index}`;
200
- return;
201
- }
202
- if (on_off === 'on') {
203
- worker.env['DEBUG'] = '*,-executer:*,-dispose:*';
204
- worker.env['DEBUG_LEVEL'] = 'verbose';
205
- logger.success `debug mode enabled for worker "${worker._id}"`;
206
- }
207
- else if (on_off === 'off') {
208
- worker.env['DEBUG'] = '';
209
- worker.env['DEBUG_LEVEL'] = '';
210
- logger.success `debug mode disabled for worker "${worker._id}"`;
211
- }
212
- else {
213
- logger.error `invalid argument: ${text}`;
214
- }
215
- },
216
- });
217
- // registerCommand({
218
- // name: ['print', 'p'],
219
- // description: '显示命令执行输出',
220
- // callback: () => {
221
- // },
222
- // });
223
- }
224
- function sendStatus() {
225
- const noError = errors.values().every((e) => !e);
226
- if (noError) {
227
- channelClient.success(`all ${workersManager.size()} workers completed successfully.`);
228
- }
229
- else {
230
- let errorCnt = 0;
231
- const arr = [];
232
- for (const [client, err] of errors.entries()) {
233
- if (err) {
234
- errorCnt++;
235
- arr.push(client._id);
236
- }
237
- }
238
- channelClient.failed(`mpis-run: ${arr.join(', ')} (${errorCnt} / ${workersManager.size()})`, formatAllErrors());
239
- }
240
- }
241
- function formatAllErrors() {
242
- const lines = [];
243
- const colorEnabled = logger.colorEnabled;
244
- let index = 0;
245
- for (const [worker, error] of errors) {
246
- if (error === null)
247
- continue;
248
- index++;
249
- let tag = '';
250
- if (error.name !== 'Error') {
251
- tag = ` (${error.name})`;
252
- }
253
- const banner = colorEnabled ? `\x1B[48;5;9m ERROR ${index} \x1B[0m` : `ERROR ${index}`;
254
- lines.push(`\n${banner}${tag} ${worker._id}`);
255
- if (error instanceof CompileError) {
256
- lines.push(error.toString());
257
- }
258
- else if (error instanceof Error) {
259
- lines.push(prettyFormatError(error));
260
- }
261
- else {
262
- lines.push(`can not handle error: ${error}`);
263
- }
264
- lines.push(`\n${banner} ${worker._id}`);
265
- }
266
- return lines.join('\n');
267
- }
268
- function printAllErrors() {
269
- execute_index++;
270
- const execTip = `exec: ${execute_index} / ${humanDate.delta(Date.now() - start)}`;
271
- const numFailed = [...errors.values().filter((e) => !!e)].length;
272
- if (numFailed !== 0) {
273
- console.error(formatAllErrors());
274
- logger.error(`💥 ${numFailed} of ${workersManager.size()} worker failed (${execTip})`);
275
- }
276
- else {
277
- logger.success(`✅ no error in ${workersManager.size()} workers (${execTip})`);
278
- }
279
- }
280
120
  //# sourceMappingURL=bin.js.map
package/lib/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export declare function printUsage(): void;
2
- export declare function parseCliArgs(): {
3
- command: "config" | "build" | "watch" | "clean";
2
+ declare function parseCliArgs(): {
3
+ command: "config" | "watch" | "build" | "clean";
4
4
  configCommand: "dump" | undefined;
5
5
  debugMode: boolean;
6
6
  verboseMode: boolean;
@@ -10,5 +10,6 @@ export declare function parseCliArgs(): {
10
10
  withCleanup: boolean;
11
11
  dumpConfig: boolean;
12
12
  };
13
- export declare let context: Readonly<ReturnType<typeof parseCliArgs>>;
13
+ export declare const context: Readonly<ReturnType<typeof parseCliArgs>>;
14
+ export {};
14
15
  //# sourceMappingURL=args.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/common/args.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,SAQzB;AAED,wBAAgB,YAAY;;;;;;;;;;EAwE3B;AAED,eAAO,IAAI,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/common/args.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,SAQzB;AAED,iBAAS,YAAY;;;;;;;;;;EAsEpB;AAED,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAkB,CAAC"}
@@ -9,7 +9,7 @@ export function printUsage() {
9
9
  console.log(' clean cleanup the project');
10
10
  // console.log(' init create config file if not');
11
11
  }
12
- export function parseCliArgs() {
12
+ function parseCliArgs() {
13
13
  const debugLevel = argv.flag(['-d', '--debug']);
14
14
  const debugMode = debugLevel > 0;
15
15
  const verboseMode = debugLevel > 1;
@@ -63,7 +63,6 @@ export function parseCliArgs() {
63
63
  withCleanup,
64
64
  dumpConfig,
65
65
  };
66
- context = r;
67
66
  if (argv.unused().length) {
68
67
  printUsage();
69
68
  console.error('');
@@ -71,5 +70,5 @@ export function parseCliArgs() {
71
70
  }
72
71
  return r;
73
72
  }
74
- export let context;
73
+ export const context = parseCliArgs();
75
74
  //# sourceMappingURL=args.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/common/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/common/args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE3E,MAAM,UAAU,UAAU;IACzB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,sDAAsD;AACvD,CAAC;AAED,SAAS,YAAY;IACpB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAEhD,MAAM,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC;IAEnC,IAAI,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC;IAC/B,IAAI,WAAW,EAAE,CAAC;QACjB,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC;IAChC,CAAC;SAAM,IAAI,SAAS,EAAE,CAAC;QACtB,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,UAAU,EAAE,CAAC;QACb,MAAM,MAAM,CAAC,KAAK,CAAA,uDAAuD,CAAC;IAC3E,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC;IAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC;IAE5C,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,SAAS,EAAE,CAAC;QACf,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;QACvC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,SAAS,EAAE,CAAC;QACf,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;QACvC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,aAAa,CAAC;IAClB,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,UAAU,EAAE,CAAC;YACb,MAAM,MAAM,CAAC,KAAK,CAAA,6BAA6B,CAAC;QACjD,CAAC;QAED,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC;QAC1B,eAAe;IAChB,CAAC;SAAM,CAAC;QACP,aAAa,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,GAAG;QACT,OAAO,EAAE,OAAO,CAAC,KAAK;QACtB,aAAa;QACb,SAAS;QACT,WAAW;QACX,SAAS;QACT,SAAS;QACT,SAAS;QACT,WAAW;QACX,UAAU;KACV,CAAC;IAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;QAC1B,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,MAAM,MAAM,CAAC,KAAK,CAAA,sBAAsB,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,CAAC,CAAC;AACV,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAA8C,YAAY,EAAE,CAAC"}
@@ -11,5 +11,5 @@ export interface IConfigFile {
11
11
  clean: readonly string[];
12
12
  additionalPaths: readonly string[];
13
13
  }
14
- export declare function loadConfigFile(watchMode: boolean): IConfigFile;
14
+ export declare const config: IConfigFile;
15
15
  //# sourceMappingURL=config-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../../src/common/config-file.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,QAAQ;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B;AACD,MAAM,WAAW,WAAW;IAC3B,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAgBD,wBAAgB,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,WAAW,CAoG9D"}
1
+ {"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../../src/common/config-file.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,QAAQ;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B;AACD,MAAM,WAAW,WAAW;IAC3B,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAuMD,eAAO,MAAM,MAAM,aAAoC,CAAC"}
@@ -5,6 +5,7 @@ import { readFileSync } from 'node:fs';
5
5
  import { resolve } from 'node:path';
6
6
  import { fileURLToPath } from 'node:url';
7
7
  import { split as splitCmd } from 'split-cmd';
8
+ import { context } from './args.js';
8
9
  import { projectRoot, selfRoot } from './paths.js';
9
10
  function watchModeCmd(command, watch, watchMode) {
10
11
  const cmdArr = typeof command === 'string' ? splitCmd(command) : command;
@@ -18,7 +19,7 @@ function watchModeCmd(command, watch, watchMode) {
18
19
  watch = ['-w'];
19
20
  return [...cmdArr, ...watch];
20
21
  }
21
- export function loadConfigFile(watchMode) {
22
+ function loadConfigFile(watchMode) {
22
23
  const config = new ProjectConfig(projectRoot, undefined, logger);
23
24
  const schemaFile = resolve(selfRoot, 'commands.schema.json');
24
25
  const configFile = config.getJsonConfigInfo('commands');
@@ -183,4 +184,6 @@ function resolveCommandIsFile(config, command) {
183
184
  }
184
185
  command.splice(0, 1, process.execPath, r.effective);
185
186
  }
187
+ export const config = loadConfigFile(context.watchMode);
188
+ logger.verbose `loaded config file: ${config}`;
186
189
  //# sourceMappingURL=config-file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-file.js","sourceRoot":"","sources":["../../src/common/config-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-file.js","sourceRoot":"","sources":["../../src/common/config-file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function addBreakModeDebugCommands(): void;
2
+ //# sourceMappingURL=interactive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/common/interactive.ts"],"names":[],"mappings":"AAKA,wBAAgB,yBAAyB,SAwCxC"}
@@ -0,0 +1,46 @@
1
+ import { logger } from '@idlebox/logger';
2
+ import { workersManager } from './manager.js';
3
+ import { registerCommand } from './stdin.js';
4
+ export function addBreakModeDebugCommands() {
5
+ logger.warn `Break mode enabled, waiting for input command...`;
6
+ registerCommand({
7
+ name: ['continue', 'c'],
8
+ description: '开始执行',
9
+ callback: () => {
10
+ workersManager.finalize().startup();
11
+ },
12
+ });
13
+ registerCommand({
14
+ name: ['debug'],
15
+ description: '切换调试模式(仅在启动前有效)',
16
+ callback: (text) => {
17
+ const [_, index, on_off] = text.split(/\s+/);
18
+ const list = workersManager._allWorkers;
19
+ const worker = list[Number(index)];
20
+ if (!worker) {
21
+ logger.error `worker index out of range: ${index}`;
22
+ return;
23
+ }
24
+ if (on_off === 'on') {
25
+ worker.env['DEBUG'] = '*,-executer:*,-dispose:*';
26
+ worker.env['DEBUG_LEVEL'] = 'verbose';
27
+ logger.success `debug mode enabled for worker "${worker._id}"`;
28
+ }
29
+ else if (on_off === 'off') {
30
+ worker.env['DEBUG'] = '';
31
+ worker.env['DEBUG_LEVEL'] = '';
32
+ logger.success `debug mode disabled for worker "${worker._id}"`;
33
+ }
34
+ else {
35
+ logger.error `invalid argument: ${text}`;
36
+ }
37
+ },
38
+ });
39
+ // registerCommand({
40
+ // name: ['print', 'p'],
41
+ // description: '显示命令执行输出',
42
+ // callback: () => {
43
+ // },
44
+ // });
45
+ }
46
+ //# sourceMappingURL=interactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/common/interactive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,UAAU,yBAAyB;IACxC,MAAM,CAAC,IAAI,CAAA,kDAAkD,CAAC;IAE9D,eAAe,CAAC;QACf,IAAI,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC;QACvB,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,GAAG,EAAE;YACd,cAAc,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC;QACrC,CAAC;KACD,CAAC,CAAC;IACH,eAAe,CAAC;QACf,IAAI,EAAE,CAAC,OAAO,CAAC;QACf,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE;YAC1B,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,WAAiC,CAAC;YAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAA,8BAA8B,KAAK,EAAE,CAAC;gBAClD,OAAO;YACR,CAAC;YACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,0BAA0B,CAAC;gBACjD,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;gBACtC,MAAM,CAAC,OAAO,CAAA,kCAAkC,MAAM,CAAC,GAAG,GAAG,CAAC;YAC/D,CAAC;iBAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC7B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACzB,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAA,mCAAmC,MAAM,CAAC,GAAG,GAAG,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,KAAK,CAAA,qBAAqB,IAAI,EAAE,CAAC;YACzC,CAAC;QACF,CAAC;KACD,CAAC,CAAC;IACH,oBAAoB;IACpB,yBAAyB;IACzB,4BAA4B;IAC5B,qBAAqB;IACrB,MAAM;IACN,MAAM;AACP,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { WorkersManager } from '@mpis/server';
2
+ export declare const workersManager: WorkersManager;
3
+ export declare function initializeWorkers(): void;
4
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/common/manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAA8B,cAAc,EAAE,MAAM,cAAc,CAAC;AAK1E,eAAO,MAAM,cAAc,gBAA0E,CAAC;AAEtG,wBAAgB,iBAAiB,SAqChC"}
@@ -0,0 +1,61 @@
1
+ import { logger } from '@idlebox/logger';
2
+ import { channelClient } from '@mpis/client';
3
+ import { ModeKind, ProcessIPCClient, WorkersManager } from '@mpis/server';
4
+ import { context } from './args.js';
5
+ import { config } from './config-file.js';
6
+ import { errors, formatAllErrors, reprintWatchModeError } from './print-screen.js';
7
+ export const workersManager = new WorkersManager(context.watchMode ? ModeKind.Watch : ModeKind.Build);
8
+ export function initializeWorkers() {
9
+ let last;
10
+ for (const title of config.buildTitles) {
11
+ const cmds = config.build.get(title);
12
+ if (!cmds)
13
+ throw logger.fatal `program state error, no build command "${title}"`;
14
+ if (!cmds.env['DEBUG'])
15
+ cmds.env['DEBUG'] = '';
16
+ if (!cmds.env['DEBUG_LEVEL'])
17
+ cmds.env['DEBUG_LEVEL'] = '';
18
+ const worker = new ProcessIPCClient(title.replace(/\s+/g, ''), cmds.command, cmds.cwd, cmds.env);
19
+ for (const path of config.additionalPaths) {
20
+ worker.pathvar.add(path);
21
+ }
22
+ worker.displayTitle = `run:${cmds.command[0]}`;
23
+ workersManager.addWorker(worker, last ? [last._id] : []);
24
+ let nodeFirstTime = true;
25
+ worker.onFailure((e) => {
26
+ errors.set(worker, e);
27
+ reprintWatchModeError(nodeFirstTime);
28
+ nodeFirstTime = false;
29
+ sendStatus();
30
+ });
31
+ worker.onSuccess(() => {
32
+ errors.set(worker, null);
33
+ if (nodeFirstTime) {
34
+ nodeFirstTime = false;
35
+ }
36
+ else {
37
+ reprintWatchModeError();
38
+ }
39
+ sendStatus();
40
+ });
41
+ last = worker;
42
+ }
43
+ }
44
+ function sendStatus() {
45
+ const noError = errors.values().every((e) => !e);
46
+ if (noError) {
47
+ channelClient.success(`all ${workersManager.size()} workers completed successfully.`);
48
+ }
49
+ else {
50
+ let errorCnt = 0;
51
+ const arr = [];
52
+ for (const [client, err] of errors.entries()) {
53
+ if (err) {
54
+ errorCnt++;
55
+ arr.push(client._id);
56
+ }
57
+ }
58
+ channelClient.failed(`mpis-run: ${arr.join(', ')} (${errorCnt} / ${workersManager.size()})`, formatAllErrors());
59
+ }
60
+ }
61
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/common/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEnF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEtG,MAAM,UAAU,iBAAiB;IAChC,IAAI,IAAkC,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI;YAAE,MAAM,MAAM,CAAC,KAAK,CAAA,0CAA0C,KAAK,GAAG,CAAC;QAEhF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjG,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,CAAC,YAAY,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAE/C,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEzD,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YACtB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACtB,qBAAqB,CAAC,aAAa,CAAC,CAAC;YACrC,aAAa,GAAG,KAAK,CAAC;YACtB,UAAU,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;YACrB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACzB,IAAI,aAAa,EAAE,CAAC;gBACnB,aAAa,GAAG,KAAK,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACP,qBAAqB,EAAE,CAAC;YACzB,CAAC;YACD,UAAU,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,IAAI,GAAG,MAAM,CAAC;IACf,CAAC;AACF,CAAC;AAED,SAAS,UAAU;IAClB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,IAAI,OAAO,EAAE,CAAC;QACb,aAAa,CAAC,OAAO,CAAC,OAAO,cAAc,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC;IACvF,CAAC;SAAM,CAAC;QACP,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9C,IAAI,GAAG,EAAE,CAAC;gBACT,QAAQ,EAAE,CAAC;gBACX,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACF,CAAC;QACD,aAAa,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,MAAM,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAC;IACjH,CAAC;AACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type ProcessIPCClient } from '@mpis/server';
2
+ export declare const errors: Map<ProcessIPCClient, Error | null>;
3
+ export declare function reprintWatchModeError(noClear?: boolean): void;
4
+ export declare function formatAllErrors(): string;
5
+ //# sourceMappingURL=print-screen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print-screen.d.ts","sourceRoot":"","sources":["../../src/common/print-screen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAMnE,eAAO,MAAM,MAAM,qCAA4C,CAAC;AAEhE,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,OAAO,QAYtD;AAmBD,wBAAgB,eAAe,WAyB9B"}
@@ -0,0 +1,67 @@
1
+ import { humanDate, prettyFormatError, registerGlobalLifecycle, toDisposable } from '@idlebox/common';
2
+ import { logger } from '@idlebox/logger';
3
+ import { CompileError } from '@mpis/server';
4
+ import { context } from './args.js';
5
+ import { workersManager } from './manager.js';
6
+ let printTo;
7
+ const defaultNoClear = logger.debug.isEnabled || !process.stderr.isTTY;
8
+ export const errors = new Map();
9
+ export function reprintWatchModeError(noClear) {
10
+ if (printTo)
11
+ clearTimeout(printTo);
12
+ printTo = setTimeout(() => {
13
+ printTo = undefined;
14
+ if (context.watchMode) {
15
+ if (!noClear && !defaultNoClear)
16
+ process.stderr.write('\x1Bc');
17
+ }
18
+ const graph = workersManager.finalize();
19
+ console.error('%s\n%s', graph.debugFormatList(), graph.debugFormatSummary());
20
+ printAllErrors();
21
+ }, 50);
22
+ }
23
+ let execute_index = 0;
24
+ const start = Date.now();
25
+ function printAllErrors() {
26
+ execute_index++;
27
+ const execTip = `exec: ${execute_index} / ${humanDate.delta(Date.now() - start)}`;
28
+ const numFailed = [...errors.values().filter((e) => !!e)].length;
29
+ if (numFailed !== 0) {
30
+ console.error(formatAllErrors());
31
+ logger.error(`💥 ${numFailed} of ${workersManager.size()} worker failed (${execTip})`);
32
+ }
33
+ else {
34
+ logger.success(`✅ no error in ${workersManager.size()} workers (${execTip})`);
35
+ }
36
+ }
37
+ export function formatAllErrors() {
38
+ const lines = [];
39
+ const colorEnabled = logger.colorEnabled;
40
+ let index = 0;
41
+ for (const [worker, error] of errors) {
42
+ if (error === null)
43
+ continue;
44
+ index++;
45
+ let tag = '';
46
+ if (error.name !== 'Error') {
47
+ tag = ` (${error.name})`;
48
+ }
49
+ const banner = colorEnabled ? `\x1B[48;5;9m ERROR ${index} \x1B[0m` : `ERROR ${index}`;
50
+ lines.push(`\n${banner}${tag} ${worker._id}`);
51
+ if (error instanceof CompileError) {
52
+ lines.push(error.toString());
53
+ }
54
+ else if (error instanceof Error) {
55
+ lines.push(prettyFormatError(error));
56
+ }
57
+ else {
58
+ lines.push(`can not handle error: ${error}`);
59
+ }
60
+ lines.push(`\n${banner} ${worker._id}`);
61
+ }
62
+ return lines.join('\n');
63
+ }
64
+ registerGlobalLifecycle(toDisposable(() => {
65
+ logger.info `Operation completed in ${humanDate.delta(Date.now() - start)} (${process.exitCode !== 0 ? 'failed' : 'success'}).`;
66
+ }));
67
+ //# sourceMappingURL=print-screen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print-screen.js","sourceRoot":"","sources":["../../src/common/print-screen.ts"],"names":[],"mappings":"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"}
package/loader/bin.js CHANGED
@@ -2,4 +2,6 @@
2
2
 
3
3
  import '@idlebox/source-map-support/register';
4
4
 
5
+ process.title = `MpisRun`;
6
+
5
7
  await import('../lib/bin.js');
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mpis/run",
3
3
  "type": "module",
4
- "version": "0.0.10",
4
+ "version": "0.0.11",
5
5
  "keywords": [],
6
6
  "bin": {
7
7
  "run": "./loader/bin.js",
@@ -12,16 +12,20 @@
12
12
  },
13
13
  "dependencies": {
14
14
  "split-cmd": "^1.1.0",
15
- "@build-script/rushstack-config-loader": "^0.0.26",
15
+ "@build-script/rushstack-config-loader": "^0.0.27",
16
+ "@idlebox/args": "^0.0.16",
17
+ "@idlebox/logger": "^0.0.9",
18
+ "@idlebox/node": "^1.4.15",
16
19
  "@idlebox/common": "^1.5.0",
17
- "@idlebox/logger": "^0.0.8",
18
- "@idlebox/args": "^0.0.15",
19
- "@idlebox/node": "^1.4.14",
20
- "@mpis/client": "^0.0.8",
21
- "@mpis/server": "^0.0.7",
22
- "@idlebox/source-map-support": "^0.0.8"
20
+ "@mpis/client": "^0.0.9",
21
+ "@mpis/server": "^0.0.8",
22
+ "@idlebox/source-map-support": "^0.0.9"
23
+ },
24
+ "devDependencies": {
25
+ "@types/node": "^24.0.14",
26
+ "@build-script/single-dog-asset": "latest",
27
+ "@idlebox/esbuild-executer": "^0.0.7"
23
28
  },
24
- "devDependencies": {},
25
29
  "sideEffects": false,
26
30
  "license": "MIT",
27
31
  "author": "GongT <admin@gongt.me>",
package/src/bin.ts CHANGED
@@ -1,44 +1,28 @@
1
- import { functionToDisposable, humanDate, prettyFormatError, registerGlobalLifecycle, toDisposable } from '@idlebox/common';
1
+ import { functionToDisposable, humanDate, prettyPrintError, registerGlobalLifecycle } from '@idlebox/common';
2
2
  import { logger } from '@idlebox/logger';
3
3
  import { registerNodejsExitHandler, setExitCodeIfNot, shutdown } from '@idlebox/node';
4
4
  import { channelClient } from '@mpis/client';
5
- import { CompileError, ModeKind, ProcessIPCClient, WorkersManager } from '@mpis/server';
5
+ import { ProcessIPCClient } from '@mpis/server';
6
6
  import { rmSync } from 'node:fs';
7
7
  import { dumpConfig } from './commands/config.js';
8
- import { context, parseCliArgs } from './common/args.js';
9
- import { loadConfigFile } from './common/config-file.js';
8
+ import { context } from './common/args.js';
9
+ import { config } from './common/config-file.js';
10
+ import { addBreakModeDebugCommands } from './common/interactive.js';
11
+ import { initializeWorkers, workersManager } from './common/manager.js';
10
12
  import { projectRoot } from './common/paths.js';
13
+ import { reprintWatchModeError } from './common/print-screen.js';
11
14
  import { initializeStdin, registerCommand } from './common/stdin.js';
12
15
 
13
16
  registerNodejsExitHandler();
14
17
 
15
- parseCliArgs();
16
-
17
- let execute_index = 0;
18
- const start = Date.now();
19
- registerGlobalLifecycle(
20
- toDisposable(() => {
21
- logger.info`Operation completed in ${humanDate.delta(Date.now() - start)} (${process.exitCode !== 0 ? 'failed' : 'success'}).`;
22
- }),
23
- );
24
-
25
18
  registerCommand({
26
19
  name: ['status', 's'],
27
20
  description: '显示当前状态',
28
21
  callback: () => reprintWatchModeError(),
29
22
  });
30
23
 
31
- process.title = `MpisRun`;
32
-
33
24
  logger.info`Running command "${context.command}" in ${projectRoot}`;
34
25
 
35
- const defaultNoClear = logger.debug.isEnabled || !process.stderr.isTTY;
36
- let workersManager: WorkersManager;
37
-
38
- const config = loadConfigFile(context.watchMode);
39
- logger.verbose`loaded config file: ${config}`;
40
- const errors = new Map<ProcessIPCClient, Error | null>();
41
-
42
26
  switch (context.command) {
43
27
  case 'clean':
44
28
  executeClean();
@@ -57,7 +41,7 @@ switch (context.command) {
57
41
  logger.debug`build completed.`;
58
42
  setExitCodeIfNot(0);
59
43
  } catch (e: any) {
60
- logger.error`failed ${context.command} project: ${e.message}`;
44
+ prettyPrintError(`failed ${context.command} project`, e);
61
45
  shutdown(1);
62
46
  }
63
47
  }
@@ -69,17 +53,14 @@ switch (context.command) {
69
53
  }
70
54
  initializeStdin();
71
55
  await executeBuild().catch((e: Error) => {
72
- logger.error`failed ${context.command} project: ${e.message}`;
56
+ prettyPrintError(`failed ${context.command} project`, e);
73
57
  shutdown(1);
74
58
  });
75
59
  break;
76
60
  }
77
61
 
78
- // channelClient.displayName = `MpisRun`;
79
-
80
62
  async function executeBuild() {
81
63
  let shuttingDown = false;
82
- workersManager = new WorkersManager(context.watchMode ? ModeKind.Watch : ModeKind.Build);
83
64
 
84
65
  initializeWorkers();
85
66
  const graph = workersManager.finalize();
@@ -111,8 +92,7 @@ async function executeBuild() {
111
92
  channelClient.start();
112
93
 
113
94
  if (context.breakMode) {
114
- logger.warn`Break mode enabled, waiting for input command...`;
115
- addDebugCommand();
95
+ addBreakModeDebugCommands();
116
96
  return;
117
97
  }
118
98
  logger.verbose`Workers initialized, starting execution...`;
@@ -137,45 +117,6 @@ function executeClean() {
137
117
  logger.success`Cleaned up ${config.clean.length} folders.`;
138
118
  }
139
119
 
140
- function initializeWorkers() {
141
- let last: ProcessIPCClient | undefined;
142
- for (const title of config.buildTitles) {
143
- const cmds = config.build.get(title);
144
- if (!cmds) throw logger.fatal`program state error, no build command "${title}"`;
145
-
146
- if (!cmds.env['DEBUG']) cmds.env['DEBUG'] = '';
147
- if (!cmds.env['DEBUG_LEVEL']) cmds.env['DEBUG_LEVEL'] = '';
148
- const worker = new ProcessIPCClient(title.replace(/\s+/g, ''), cmds.command, cmds.cwd, cmds.env);
149
-
150
- for (const path of config.additionalPaths) {
151
- worker.pathvar.add(path);
152
- }
153
-
154
- worker.displayTitle = `run:${cmds.command[0]}`;
155
-
156
- workersManager.addWorker(worker, last ? [last._id] : []);
157
-
158
- let nodeFirstTime = true;
159
- worker.onFailure((e) => {
160
- errors.set(worker, e);
161
- reprintWatchModeError(nodeFirstTime);
162
- nodeFirstTime = false;
163
- sendStatus();
164
- });
165
- worker.onSuccess(() => {
166
- errors.set(worker, null);
167
- if (nodeFirstTime) {
168
- nodeFirstTime = false;
169
- } else {
170
- reprintWatchModeError();
171
- }
172
- sendStatus();
173
- });
174
-
175
- last = worker;
176
- }
177
- }
178
-
179
120
  const cls = /\x1Bc/g;
180
121
 
181
122
  function printFailedRunError(worker: ProcessIPCClient, message: string) {
@@ -197,116 +138,3 @@ function printFailedRunError(worker: ProcessIPCClient, message: string) {
197
138
  logger.error`"${worker._id}" ${message}`;
198
139
  shutdown(1);
199
140
  }
200
-
201
- let printTo: NodeJS.Timeout | undefined;
202
- function reprintWatchModeError(noClear?: boolean) {
203
- if (printTo) clearTimeout(printTo);
204
- printTo = setTimeout(() => {
205
- printTo = undefined;
206
-
207
- if (context.watchMode) {
208
- if (!noClear && !defaultNoClear) process.stderr.write('\x1Bc');
209
- }
210
- const graph = workersManager.finalize();
211
- console.error('%s\n%s', graph.debugFormatList(), graph.debugFormatSummary());
212
- printAllErrors();
213
- }, 50);
214
- }
215
-
216
- function addDebugCommand() {
217
- registerCommand({
218
- name: ['continue', 'c'],
219
- description: '开始执行',
220
- callback: () => {
221
- workersManager.finalize().startup();
222
- },
223
- });
224
- registerCommand({
225
- name: ['debug'],
226
- description: '切换调试模式(仅在启动前有效)',
227
- callback: (text: string) => {
228
- const [_, index, on_off] = text.split(/\s+/);
229
- const list = workersManager._allWorkers as ProcessIPCClient[];
230
- const worker = list[Number(index)];
231
- if (!worker) {
232
- logger.error`worker index out of range: ${index}`;
233
- return;
234
- }
235
- if (on_off === 'on') {
236
- worker.env['DEBUG'] = '*,-executer:*,-dispose:*';
237
- worker.env['DEBUG_LEVEL'] = 'verbose';
238
- logger.success`debug mode enabled for worker "${worker._id}"`;
239
- } else if (on_off === 'off') {
240
- worker.env['DEBUG'] = '';
241
- worker.env['DEBUG_LEVEL'] = '';
242
- logger.success`debug mode disabled for worker "${worker._id}"`;
243
- } else {
244
- logger.error`invalid argument: ${text}`;
245
- }
246
- },
247
- });
248
- // registerCommand({
249
- // name: ['print', 'p'],
250
- // description: '显示命令执行输出',
251
- // callback: () => {
252
- // },
253
- // });
254
- }
255
-
256
- function sendStatus() {
257
- const noError = errors.values().every((e) => !e);
258
- if (noError) {
259
- channelClient.success(`all ${workersManager.size()} workers completed successfully.`);
260
- } else {
261
- let errorCnt = 0;
262
- const arr: string[] = [];
263
- for (const [client, err] of errors.entries()) {
264
- if (err) {
265
- errorCnt++;
266
- arr.push(client._id);
267
- }
268
- }
269
- channelClient.failed(`mpis-run: ${arr.join(', ')} (${errorCnt} / ${workersManager.size()})`, formatAllErrors());
270
- }
271
- }
272
-
273
- function formatAllErrors() {
274
- const lines: string[] = [];
275
- const colorEnabled = logger.colorEnabled;
276
- let index = 0;
277
- for (const [worker, error] of errors) {
278
- if (error === null) continue;
279
-
280
- index++;
281
-
282
- let tag = '';
283
- if (error.name !== 'Error') {
284
- tag = ` (${error.name})`;
285
- }
286
- const banner = colorEnabled ? `\x1B[48;5;9m ERROR ${index} \x1B[0m` : `ERROR ${index}`;
287
- lines.push(`\n${banner}${tag} ${worker._id}`);
288
- if (error instanceof CompileError) {
289
- lines.push(error.toString());
290
- } else if (error instanceof Error) {
291
- lines.push(prettyFormatError(error));
292
- } else {
293
- lines.push(`can not handle error: ${error}`);
294
- }
295
- lines.push(`\n${banner} ${worker._id}`);
296
- }
297
- return lines.join('\n');
298
- }
299
-
300
- function printAllErrors() {
301
- execute_index++;
302
- const execTip = `exec: ${execute_index} / ${humanDate.delta(Date.now() - start)}`;
303
-
304
- const numFailed = [...errors.values().filter((e) => !!e)].length;
305
- if (numFailed !== 0) {
306
- console.error(formatAllErrors());
307
-
308
- logger.error(`💥 ${numFailed} of ${workersManager.size()} worker failed (${execTip})`);
309
- } else {
310
- logger.success(`✅ no error in ${workersManager.size()} workers (${execTip})`);
311
- }
312
- }
@@ -11,7 +11,7 @@ export function printUsage() {
11
11
  // console.log(' init create config file if not');
12
12
  }
13
13
 
14
- export function parseCliArgs() {
14
+ function parseCliArgs() {
15
15
  const debugLevel = argv.flag(['-d', '--debug']);
16
16
 
17
17
  const debugMode = debugLevel > 0;
@@ -75,8 +75,6 @@ export function parseCliArgs() {
75
75
  dumpConfig,
76
76
  };
77
77
 
78
- context = r;
79
-
80
78
  if (argv.unused().length) {
81
79
  printUsage();
82
80
  console.error('');
@@ -85,4 +83,4 @@ export function parseCliArgs() {
85
83
  return r;
86
84
  }
87
85
 
88
- export let context: Readonly<ReturnType<typeof parseCliArgs>>;
86
+ export const context: Readonly<ReturnType<typeof parseCliArgs>> = parseCliArgs();
@@ -5,6 +5,7 @@ import { readFileSync } from 'node:fs';
5
5
  import { resolve } from 'node:path';
6
6
  import { fileURLToPath } from 'node:url';
7
7
  import { split as splitCmd } from 'split-cmd';
8
+ import { context } from './args.js';
8
9
  import { projectRoot, selfRoot } from './paths.js';
9
10
 
10
11
  interface IPackageBinary {
@@ -54,7 +55,7 @@ function watchModeCmd(command: string | readonly string[], watch?: string | read
54
55
  return [...cmdArr, ...watch];
55
56
  }
56
57
 
57
- export function loadConfigFile(watchMode: boolean): IConfigFile {
58
+ function loadConfigFile(watchMode: boolean): IConfigFile {
58
59
  const config = new ProjectConfig(projectRoot, undefined, logger);
59
60
  const schemaFile = resolve(selfRoot, 'commands.schema.json');
60
61
 
@@ -236,3 +237,6 @@ function resolveCommandIsFile(config: ProjectConfig, command: string[]) {
236
237
 
237
238
  command.splice(0, 1, process.execPath, r.effective);
238
239
  }
240
+
241
+ export const config = loadConfigFile(context.watchMode);
242
+ logger.verbose`loaded config file: ${config}`;
@@ -0,0 +1,46 @@
1
+ import { logger } from '@idlebox/logger';
2
+ import type { ProcessIPCClient } from '@mpis/server';
3
+ import { workersManager } from './manager.js';
4
+ import { registerCommand } from './stdin.js';
5
+
6
+ export function addBreakModeDebugCommands() {
7
+ logger.warn`Break mode enabled, waiting for input command...`;
8
+
9
+ registerCommand({
10
+ name: ['continue', 'c'],
11
+ description: '开始执行',
12
+ callback: () => {
13
+ workersManager.finalize().startup();
14
+ },
15
+ });
16
+ registerCommand({
17
+ name: ['debug'],
18
+ description: '切换调试模式(仅在启动前有效)',
19
+ callback: (text: string) => {
20
+ const [_, index, on_off] = text.split(/\s+/);
21
+ const list = workersManager._allWorkers as ProcessIPCClient[];
22
+ const worker = list[Number(index)];
23
+ if (!worker) {
24
+ logger.error`worker index out of range: ${index}`;
25
+ return;
26
+ }
27
+ if (on_off === 'on') {
28
+ worker.env['DEBUG'] = '*,-executer:*,-dispose:*';
29
+ worker.env['DEBUG_LEVEL'] = 'verbose';
30
+ logger.success`debug mode enabled for worker "${worker._id}"`;
31
+ } else if (on_off === 'off') {
32
+ worker.env['DEBUG'] = '';
33
+ worker.env['DEBUG_LEVEL'] = '';
34
+ logger.success`debug mode disabled for worker "${worker._id}"`;
35
+ } else {
36
+ logger.error`invalid argument: ${text}`;
37
+ }
38
+ },
39
+ });
40
+ // registerCommand({
41
+ // name: ['print', 'p'],
42
+ // description: '显示命令执行输出',
43
+ // callback: () => {
44
+ // },
45
+ // });
46
+ }
@@ -0,0 +1,64 @@
1
+ import { logger } from '@idlebox/logger';
2
+ import { channelClient } from '@mpis/client';
3
+ import { ModeKind, ProcessIPCClient, WorkersManager } from '@mpis/server';
4
+ import { context } from './args.js';
5
+ import { config } from './config-file.js';
6
+ import { errors, formatAllErrors, reprintWatchModeError } from './print-screen.js';
7
+
8
+ export const workersManager = new WorkersManager(context.watchMode ? ModeKind.Watch : ModeKind.Build);
9
+
10
+ export function initializeWorkers() {
11
+ let last: ProcessIPCClient | undefined;
12
+ for (const title of config.buildTitles) {
13
+ const cmds = config.build.get(title);
14
+ if (!cmds) throw logger.fatal`program state error, no build command "${title}"`;
15
+
16
+ if (!cmds.env['DEBUG']) cmds.env['DEBUG'] = '';
17
+ if (!cmds.env['DEBUG_LEVEL']) cmds.env['DEBUG_LEVEL'] = '';
18
+ const worker = new ProcessIPCClient(title.replace(/\s+/g, ''), cmds.command, cmds.cwd, cmds.env);
19
+
20
+ for (const path of config.additionalPaths) {
21
+ worker.pathvar.add(path);
22
+ }
23
+
24
+ worker.displayTitle = `run:${cmds.command[0]}`;
25
+
26
+ workersManager.addWorker(worker, last ? [last._id] : []);
27
+
28
+ let nodeFirstTime = true;
29
+ worker.onFailure((e) => {
30
+ errors.set(worker, e);
31
+ reprintWatchModeError(nodeFirstTime);
32
+ nodeFirstTime = false;
33
+ sendStatus();
34
+ });
35
+ worker.onSuccess(() => {
36
+ errors.set(worker, null);
37
+ if (nodeFirstTime) {
38
+ nodeFirstTime = false;
39
+ } else {
40
+ reprintWatchModeError();
41
+ }
42
+ sendStatus();
43
+ });
44
+
45
+ last = worker;
46
+ }
47
+ }
48
+
49
+ function sendStatus() {
50
+ const noError = errors.values().every((e) => !e);
51
+ if (noError) {
52
+ channelClient.success(`all ${workersManager.size()} workers completed successfully.`);
53
+ } else {
54
+ let errorCnt = 0;
55
+ const arr: string[] = [];
56
+ for (const [client, err] of errors.entries()) {
57
+ if (err) {
58
+ errorCnt++;
59
+ arr.push(client._id);
60
+ }
61
+ }
62
+ channelClient.failed(`mpis-run: ${arr.join(', ')} (${errorCnt} / ${workersManager.size()})`, formatAllErrors());
63
+ }
64
+ }
@@ -0,0 +1,73 @@
1
+ import { humanDate, prettyFormatError, registerGlobalLifecycle, toDisposable } from '@idlebox/common';
2
+ import { logger } from '@idlebox/logger';
3
+ import { CompileError, type ProcessIPCClient } from '@mpis/server';
4
+ import { context } from './args.js';
5
+ import { workersManager } from './manager.js';
6
+
7
+ let printTo: NodeJS.Timeout | undefined;
8
+ const defaultNoClear = logger.debug.isEnabled || !process.stderr.isTTY;
9
+ export const errors = new Map<ProcessIPCClient, Error | null>();
10
+
11
+ export function reprintWatchModeError(noClear?: boolean) {
12
+ if (printTo) clearTimeout(printTo);
13
+ printTo = setTimeout(() => {
14
+ printTo = undefined;
15
+
16
+ if (context.watchMode) {
17
+ if (!noClear && !defaultNoClear) process.stderr.write('\x1Bc');
18
+ }
19
+ const graph = workersManager.finalize();
20
+ console.error('%s\n%s', graph.debugFormatList(), graph.debugFormatSummary());
21
+ printAllErrors();
22
+ }, 50);
23
+ }
24
+
25
+ let execute_index = 0;
26
+ const start = Date.now();
27
+
28
+ function printAllErrors() {
29
+ execute_index++;
30
+ const execTip = `exec: ${execute_index} / ${humanDate.delta(Date.now() - start)}`;
31
+
32
+ const numFailed = [...errors.values().filter((e) => !!e)].length;
33
+ if (numFailed !== 0) {
34
+ console.error(formatAllErrors());
35
+
36
+ logger.error(`💥 ${numFailed} of ${workersManager.size()} worker failed (${execTip})`);
37
+ } else {
38
+ logger.success(`✅ no error in ${workersManager.size()} workers (${execTip})`);
39
+ }
40
+ }
41
+
42
+ export function formatAllErrors() {
43
+ const lines: string[] = [];
44
+ const colorEnabled = logger.colorEnabled;
45
+ let index = 0;
46
+ for (const [worker, error] of errors) {
47
+ if (error === null) continue;
48
+
49
+ index++;
50
+
51
+ let tag = '';
52
+ if (error.name !== 'Error') {
53
+ tag = ` (${error.name})`;
54
+ }
55
+ const banner = colorEnabled ? `\x1B[48;5;9m ERROR ${index} \x1B[0m` : `ERROR ${index}`;
56
+ lines.push(`\n${banner}${tag} ${worker._id}`);
57
+ if (error instanceof CompileError) {
58
+ lines.push(error.toString());
59
+ } else if (error instanceof Error) {
60
+ lines.push(prettyFormatError(error));
61
+ } else {
62
+ lines.push(`can not handle error: ${error}`);
63
+ }
64
+ lines.push(`\n${banner} ${worker._id}`);
65
+ }
66
+ return lines.join('\n');
67
+ }
68
+
69
+ registerGlobalLifecycle(
70
+ toDisposable(() => {
71
+ logger.info`Operation completed in ${humanDate.delta(Date.now() - start)} (${process.exitCode !== 0 ? 'failed' : 'success'}).`;
72
+ }),
73
+ );
package/src/tsconfig.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "extends": "@internal/local-rig/profiles/default/tsconfig.json",
2
+ "extends": "@build-script/single-dog-asset/package/tsconfig.json",
3
3
  "compilerOptions": {
4
4
  "typeRoots": ["../node_modules/@types", "../node_modules"],
5
5
  "outDir": "../lib",
@@ -1,7 +0,0 @@
1
- export { printUsage } from './common/args.js';
2
- export { projectRoot } from './common/paths.js';
3
- export { selfRoot } from './common/paths.js';
4
- export type { ICommand } from './common/config-file.js';
5
- export type { IConfigFile } from './common/config-file.js';
6
- export { loadConfigFile } from './common/config-file.js';
7
- //# sourceMappingURL=autoindex.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"autoindex.d.ts","sourceRoot":"","sources":["../src/autoindex.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
package/lib/autoindex.js DELETED
@@ -1,14 +0,0 @@
1
- // DO NOT EDIT THIS FILE
2
- // @ts-ignore
3
- /* eslint-disable */
4
- /* common/args.ts */
5
- // Identifiers
6
- export { printUsage } from './common/args.js';
7
- /* common/paths.ts */
8
- // Identifiers
9
- export { projectRoot } from './common/paths.js';
10
- export { selfRoot } from './common/paths.js';
11
- export { loadConfigFile } from './common/config-file.js';
12
- /* bin.ts */
13
- // Identifiers
14
- //# sourceMappingURL=autoindex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"autoindex.js","sourceRoot":"","sources":["../src/autoindex.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,aAAa;AACb,oBAAoB;AAEpB,oBAAoB;AACpB,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,qBAAqB;AACrB,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAK7C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY;AACZ,cAAc"}
package/src/autoindex.ts DELETED
@@ -1,18 +0,0 @@
1
- // DO NOT EDIT THIS FILE
2
- // @ts-ignore
3
- /* eslint-disable */
4
-
5
- /* common/args.ts */
6
- // Identifiers
7
- export { printUsage } from './common/args.js';
8
- /* common/paths.ts */
9
- // Identifiers
10
- export { projectRoot } from './common/paths.js';
11
- export { selfRoot } from './common/paths.js';
12
- /* common/config-file.ts */
13
- // Identifiers
14
- export type { ICommand } from './common/config-file.js';
15
- export type { IConfigFile } from './common/config-file.js';
16
- export { loadConfigFile } from './common/config-file.js';
17
- /* bin.ts */
18
- // Identifiers