codify-plugin-test 0.0.53-beta22 → 0.0.53-beta24
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/spawn.d.ts +1 -0
- package/dist/spawn.js +6 -2
- package/dist/spawn.js.map +1 -1
- package/package.json +1 -1
- package/src/spawn.ts +8 -2
package/dist/spawn.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export interface SpawnOptions {
|
|
|
10
10
|
interactive?: boolean;
|
|
11
11
|
requiresRoot?: boolean;
|
|
12
12
|
stdin?: boolean;
|
|
13
|
+
throws?: boolean;
|
|
13
14
|
}
|
|
14
15
|
export declare function testSpawn(cmd: string, options?: SpawnOptions): Promise<SpawnResult>;
|
|
15
16
|
export declare function spawnSafe(cmd: string, options?: SpawnOptions): Promise<SpawnResult>;
|
package/dist/spawn.js
CHANGED
|
@@ -10,7 +10,7 @@ export function spawnSafe(cmd, options) {
|
|
|
10
10
|
throw new Error('Command must not include sudo');
|
|
11
11
|
}
|
|
12
12
|
console.log(`Running command: ${options?.requiresRoot ? 'sudo' : ''} ${cmd}` + (options?.cwd ? `(${options?.cwd})` : ''));
|
|
13
|
-
return new Promise((resolve) => {
|
|
13
|
+
return new Promise((resolve, reject) => {
|
|
14
14
|
const output = [];
|
|
15
15
|
const historyIgnore = ShellUtils.getShell() === Shell.ZSH ? { HISTORY_IGNORE: '*' } : { HISTIGNORE: '*' };
|
|
16
16
|
// If TERM_PROGRAM=Apple_Terminal is set then ANSI escape characters may be included
|
|
@@ -23,7 +23,7 @@ export function spawnSafe(cmd, options) {
|
|
|
23
23
|
...historyIgnore
|
|
24
24
|
};
|
|
25
25
|
// Initial terminal dimensions
|
|
26
|
-
const initialCols =
|
|
26
|
+
const initialCols = 10_000; // Set to a large value to prevent wrapping
|
|
27
27
|
const initialRows = process.stdout.rows ?? 24;
|
|
28
28
|
const command = options?.requiresRoot ? `sudo ${cmd}` : cmd;
|
|
29
29
|
const args = options?.interactive ? ['-i', '-c', command] : ['-c', command];
|
|
@@ -56,6 +56,10 @@ export function spawnSafe(cmd, options) {
|
|
|
56
56
|
if (options?.stdin) {
|
|
57
57
|
process.stdin.off('data', stdinListener);
|
|
58
58
|
}
|
|
59
|
+
if (options?.throws && result.exitCode !== 0) {
|
|
60
|
+
reject(new Error(stripAnsi(output.join('\n').trim())));
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
59
63
|
resolve({
|
|
60
64
|
status: result.exitCode === 0 ? SpawnStatus.SUCCESS : SpawnStatus.ERROR,
|
|
61
65
|
exitCode: result.exitCode,
|
package/dist/spawn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,yCAAyC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,yCAAyC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAiB/C,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,OAAsB;IAC3D,OAAO,SAAS,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,OAAO,GAAI,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,OAAsB;IAC3D,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAEzH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;QAE1G,oFAAoF;QACpF,mBAAmB;QACnB,MAAM,GAAG,GAAG;YACV,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG;YAC/B,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,UAAU;YACxB,SAAS,EAAE,WAAW;YACtB,GAAG,aAAa;SACjB,CAAA;QAED,8BAA8B;QAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,2CAA2C;QACvE,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QAE9C,MAAM,OAAO,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC5D,MAAM,IAAI,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAE3E,6CAA6C;QAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE;YACzD,GAAG,OAAO;YACV,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,WAAW;YACjB,GAAG;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAA;QAEF,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAA;QAED,MAAM,aAAa,GAAG,CAAC,IAAS,EAAE,EAAE;YAClC,sCAAsC;YACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAA;QAED,mDAAmD;QACnD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QACzC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YACrB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAC7C,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;gBACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YAC3C,CAAC;YAED,IAAI,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvD,OAAO;YACT,CAAC;YAED,OAAO,CAAC;gBACN,MAAM,EAAE,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK;gBACvE,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;aAC1C,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
package/package.json
CHANGED
package/src/spawn.ts
CHANGED
|
@@ -16,6 +16,7 @@ export interface SpawnOptions {
|
|
|
16
16
|
interactive?: boolean,
|
|
17
17
|
requiresRoot?: boolean,
|
|
18
18
|
stdin?: boolean,
|
|
19
|
+
throws?: boolean,
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
export function testSpawn(cmd: string, options?: SpawnOptions): Promise<SpawnResult> {
|
|
@@ -29,7 +30,7 @@ export function spawnSafe(cmd: string, options?: SpawnOptions): Promise<SpawnRes
|
|
|
29
30
|
|
|
30
31
|
console.log(`Running command: ${options?.requiresRoot ? 'sudo' : ''} ${cmd}` + (options?.cwd ? `(${options?.cwd})` : ''))
|
|
31
32
|
|
|
32
|
-
return new Promise((resolve) => {
|
|
33
|
+
return new Promise((resolve, reject) => {
|
|
33
34
|
const output: string[] = [];
|
|
34
35
|
const historyIgnore = ShellUtils.getShell() === Shell.ZSH ? { HISTORY_IGNORE: '*' } : { HISTIGNORE: '*' };
|
|
35
36
|
|
|
@@ -44,7 +45,7 @@ export function spawnSafe(cmd: string, options?: SpawnOptions): Promise<SpawnRes
|
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
// Initial terminal dimensions
|
|
47
|
-
const initialCols =
|
|
48
|
+
const initialCols = 10_000; // Set to a large value to prevent wrapping
|
|
48
49
|
const initialRows = process.stdout.rows ?? 24;
|
|
49
50
|
|
|
50
51
|
const command = options?.requiresRoot ? `sudo ${cmd}` : cmd;
|
|
@@ -85,6 +86,11 @@ export function spawnSafe(cmd: string, options?: SpawnOptions): Promise<SpawnRes
|
|
|
85
86
|
process.stdin.off('data', stdinListener);
|
|
86
87
|
}
|
|
87
88
|
|
|
89
|
+
if (options?.throws && result.exitCode !== 0) {
|
|
90
|
+
reject(new Error(stripAnsi(output.join('\n').trim())));
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
|
|
88
94
|
resolve({
|
|
89
95
|
status: result.exitCode === 0 ? SpawnStatus.SUCCESS : SpawnStatus.ERROR,
|
|
90
96
|
exitCode: result.exitCode,
|