@haibun/utils 1.59.2 → 1.60.2
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/build/vcapture/vcapture-lib.js +4 -4
- package/build/vcapture/vcapture-lib.js.map +1 -1
- package/package.json +2 -2
- package/build/vcapture/index copy.d.ts +0 -17
- package/build/vcapture/index copy.d.ts.map +0 -1
- package/build/vcapture/index copy.js +0 -155
- package/build/vcapture/index copy.js.map +0 -1
- package/build/vcapture/run-vcapture.d.ts +0 -18
- package/build/vcapture/run-vcapture.d.ts.map +0 -1
- package/build/vcapture/run-vcapture.js +0 -155
- package/build/vcapture/run-vcapture.js.map +0 -1
- package/build/walkthrough-container/index.d.ts +0 -3
- package/build/walkthrough-container/index.d.ts.map +0 -1
- package/build/walkthrough-container/index.js +0 -94
- package/build/walkthrough-container/index.js.map +0 -1
|
@@ -9,7 +9,7 @@ export const runContainer = (testToRun, includeDirs = [], thisCaptureOptions) =>
|
|
|
9
9
|
const { tmpFile, composeEnvironment, utilDir, composeVolumes, projectDir, buildContextDir } = getContainerSetup(thisCaptureOptions, includeDirs, testToRun);
|
|
10
10
|
const captureDir = resolve(projectDir, 'capture');
|
|
11
11
|
if (!existsSync(captureDir)) {
|
|
12
|
-
console.
|
|
12
|
+
console.info('Creating capture directory');
|
|
13
13
|
mkdirSync(captureDir, { recursive: true });
|
|
14
14
|
}
|
|
15
15
|
mkdirSync(buildContextDir, { recursive: true });
|
|
@@ -27,11 +27,11 @@ ${asYamlOptions(composeVolumes)}
|
|
|
27
27
|
${(asYamlOptions(composeEnvironment))}
|
|
28
28
|
`;
|
|
29
29
|
writeFileSync(tmpFile, composeFile);
|
|
30
|
-
console.
|
|
31
|
-
console.
|
|
30
|
+
console.info(`Building then starting vcapture container using ${utilDir}`);
|
|
31
|
+
console.info(`Mounting directories:\n${composeVolumes.join('\n')}`);
|
|
32
32
|
try {
|
|
33
33
|
const cmd = `docker compose -f docker-compose.yml -f ${tmpFile} up ${thisCaptureOptions.recreate ? '--force-recreate --build' : ''}`;
|
|
34
|
-
console.
|
|
34
|
+
console.info('building with:', cmd);
|
|
35
35
|
execSync(cmd, {
|
|
36
36
|
cwd: utilDir,
|
|
37
37
|
stdio: 'inherit',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vcapture-lib.js","sourceRoot":"","sources":["../../src/vcapture/vcapture-lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAE5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAY5E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,WAAW,GAAG,EAAE,EAAE,kBAAmC,EAAE,EAAE;IAChG,IAAI,CAAC;QACJ,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,iBAAiB,CAAC,kBAAkB,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAC5J,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"vcapture-lib.js","sourceRoot":"","sources":["../../src/vcapture/vcapture-lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAE5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAY5E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,WAAW,GAAG,EAAE,EAAE,kBAAmC,EAAE,EAAE;IAChG,IAAI,CAAC;QACJ,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,iBAAiB,CAAC,kBAAkB,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAC5J,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC3C,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,QAAQ,CAAC,MAAM,UAAU,WAAW,eAAe,GAAG,CAAC,CAAC;QACxD,QAAQ,CAAC,MAAM,OAAO,SAAS,OAAO,qBAAqB,eAAe,GAAG,CAAC,CAAC;QAC/E,MAAM,WAAW,GAAG;;;;iBAIL,eAAe;oBACZ,OAAO;;EAEzB,aAAa,CAAC,cAAc,CAAC;;EAE7B,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;CACpC,CAAC;QACA,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,0BAA0B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,2CAA2C,OAAO,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;YACpI,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;YACpC,QAAQ,CAAC,GAAG,EAAE;gBACb,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE;oBACJ,GAAG,OAAO,CAAC,GAAG;oBACd,WAAW,EAAE,UAAU;iBACvB;aACD,CAAC,CAAC;QACJ,CAAC;gBACO,CAAC;YACR,UAAU,CAAC,OAAO,CAAC,CAAC;YACpB,QAAQ,CAAC,UAAU,eAAe,EAAE,CAAC,CAAC;QACvC,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,cAA+B,EAAE,WAAqB,EAAE,SAAiB;IAC1G,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,2BAA2B,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAE/E,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,UAAU,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,UAAU,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtI,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG;QACtB,GAAG,UAAU,uBAAuB;QACpC,GAAG,UAAU,cAAc;QAC3B,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC;KACpE,CAAC;IACF,MAAM,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,MAAM,kBAAkB,GAAG;QAC1B,aAAa;QACb,OAAO,cAAc,CAAC,GAAG,EAAE;QAC3B,GAAG,gBAAgB,IAAI,UAAU,EAAE;QACnC,qBAAqB,gBAAgB,KAAK,UAAU,0BAA0B,aAAa,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,SAAS,GAAG,KAAK,EAAE;KACrK,CAAC;IACF,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC;QACxB,kBAAkB,CAAC,IAAI,CACtB,qDAAqD,EACrD,uCAAuC,CACvC,CAAC;IACH,CAAC;IACD,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;QAC5B,kBAAkB,CAAC,IAAI,CACtB,qDAAqD,EACrD,mDAAmD,CACnD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;AAC9F,CAAC;AAED,SAAS,aAAa,CAAC,OAAiB;IACvC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAc,EAAE,SAAsC;IACvF,MAAM,cAAc,GAAoB;QACvC,QAAQ,EAAE,KAAK;QACf,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,WAAW;QAChB,OAAO,EAAE,SAAS;QAClB,aAAa,EAAE,SAAS;KACxB,CAAC;IAEF,0CAA0C;IAC1C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE1B,QAAQ,IAAI,EAAE,CAAC;gBACd,KAAK,YAAY,CAAC,CAAC,CAAC;oBACnB,MAAM,aAAa,GAAG,KAAK,CAAC;oBAC5B,cAAc,CAAC,QAAQ,GAAG,aAAa,KAAK,OAAO,CAAC;oBACpD,MAAM;gBACP,CAAC;gBACD,KAAK,OAAO,CAAC,CAAC,CAAC;oBACd,MAAM,QAAQ,GAAG,KAAK,CAAC;oBACvB,cAAc,CAAC,GAAG,GAAG,QAAQ,KAAK,OAAO,CAAC;oBAC1C,MAAM;gBACP,CAAC;gBACD,KAAK,cAAc,CAAC,CAAC,CAAC;oBACrB,MAAM,YAAY,GAAG,KAAK,CAAC;oBAC3B,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC;oBACrD,MAAM;gBACP,CAAC;gBACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;oBACzB,cAAc,CAAC,aAAa,GAAG,KAAK,CAAC;oBACrC,MAAM;gBACP,CAAC;gBACD,KAAK,WAAW,CAAC,CAAC,CAAC;oBAClB,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC5F,MAAM;gBACP,CAAC;gBACD,KAAK,YAAY,CAAC,CAAC,CAAC;oBACnB,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC/F,MAAM;gBACP,CAAC;gBACD,KAAK,OAAO,CAAC,CAAC,CAAC;oBACd,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;wBACvC,cAAc,CAAC,GAAG,GAAG,KAAK,CAAC;oBAC5B,CAAC;yBAAM,CAAC;wBACP,OAAO,CAAC,KAAK,CAAC,6CAA6C,KAAK,EAAE,CAAC,CAAC;wBACpE,SAAS,EAAE,CAAC;oBACb,CAAC;oBACD,MAAM;gBACP,CAAC;gBACD,KAAK,QAAQ;oBACZ,SAAS,CAAC,CAAC,CAAC,CAAC;oBACb,MAAM;gBACP;oBACC,OAAO,CAAC,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;oBACvC,SAAS,EAAE,CAAC;YACd,CAAC;QACF,CAAC;aAAM,CAAC;YACP,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACF,CAAC;IACD,MAAM,CAAC,SAAS,EAAE,GAAG,WAAW,CAAC,GAAG,UAAU,CAAC;IAC/C,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,SAAS,EAAE,CAAC;IACxD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AACnD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haibun/utils",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.60.2",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"files": ["ref.package.json", "build/**", "scaffold/**", "vcapture/**"],
|
|
@@ -22,5 +22,5 @@
|
|
|
22
22
|
"author": "",
|
|
23
23
|
"license": "ISC",
|
|
24
24
|
"gitHead": "7cf9680bd922fb622fb59f1e6bf5b65284cb8fd5",
|
|
25
|
-
"dependencies": { "@haibun/cli": "1.
|
|
25
|
+
"dependencies": { "@haibun/cli": "1.60.2", "@haibun/core": "1.60.2" }
|
|
26
26
|
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
type TRunOptions = {
|
|
3
|
-
recreate: boolean;
|
|
4
|
-
tts: boolean;
|
|
5
|
-
capture: boolean;
|
|
6
|
-
res: string;
|
|
7
|
-
passEnv: string | undefined;
|
|
8
|
-
};
|
|
9
|
-
export declare function parseVCaptureArgs(args: string[], printHelp: (exitCode?: number) => void): {
|
|
10
|
-
runOptions: TRunOptions;
|
|
11
|
-
testToRun: string;
|
|
12
|
-
filter: string;
|
|
13
|
-
includeDirs: string[];
|
|
14
|
-
};
|
|
15
|
-
declare const TRunOptions: TRunOptions;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=index%20copy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index copy.d.ts","sourceRoot":"","sources":["../../src/vcapture/index copy.ts"],"names":[],"mappings":";AAmBA,KAAK,WAAW,GAAG;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,CAAA;AA0FD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI;;;;;EA8CvF;AAGD,QAAA,MAAoB,WAAW,aAAmF,CAAC"}
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { getPackageLocation } from '@haibun/core/build/lib/util/workspace-lib.js';
|
|
3
|
-
import { execSync } from 'child_process';
|
|
4
|
-
import { resolve } from 'path';
|
|
5
|
-
import { writeFileSync, unlinkSync, readFileSync, mkdirSync, existsSync } from 'fs';
|
|
6
|
-
import { tmpdir } from 'os';
|
|
7
|
-
import { HOST_PROJECT_DIR } from '@haibun/core/build/lib/defs.js';
|
|
8
|
-
process.on('unhandledRejection', (err) => {
|
|
9
|
-
console.error('cli Unhandled Rejection:', err);
|
|
10
|
-
if (err && err.stack) {
|
|
11
|
-
console.error(err.stack);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
console.error(err);
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
const runContainer = (testToRun, filter, includeDirs = [], thisRunOptions) => {
|
|
18
|
-
try {
|
|
19
|
-
const utilDir = resolve(getPackageLocation(import.meta), '..', '..', 'vcapture');
|
|
20
|
-
const projectDir = process.cwd();
|
|
21
|
-
const tmpFile = resolve(tmpdir(), `docker-compose.override-${Date.now()}.yml`);
|
|
22
|
-
const envs = existsSync(`${projectDir}/.env`) ? readFileSync(`${projectDir}/.env`, 'utf8').split('\n').filter(l => l.length > 0) : [];
|
|
23
|
-
if (thisRunOptions.passEnv) {
|
|
24
|
-
envs.push(thisRunOptions.passEnv);
|
|
25
|
-
}
|
|
26
|
-
const haibunEnvc = (envs.length > 0) ? `HAIBUN_ENV=${envs.join(',')} ` : '';
|
|
27
|
-
if (thisRunOptions.passEnv) {
|
|
28
|
-
haibunEnvc;
|
|
29
|
-
}
|
|
30
|
-
const captureDir = resolve(projectDir, 'capture');
|
|
31
|
-
console.info('vcapture running with options:', thisRunOptions);
|
|
32
|
-
if (!existsSync(captureDir)) {
|
|
33
|
-
console.log('Creating capture directory');
|
|
34
|
-
mkdirSync(captureDir, { recursive: true });
|
|
35
|
-
}
|
|
36
|
-
const buildContextDir = resolve(tmpdir(), `build-context-${Date.now()}`);
|
|
37
|
-
mkdirSync(buildContextDir, { recursive: true });
|
|
38
|
-
execSync(`cp ${projectDir}/*.json ${buildContextDir}/`);
|
|
39
|
-
execSync(`cp ${utilDir}/*.sh ${utilDir}/kokoro-speak.cjs ${buildContextDir}/`);
|
|
40
|
-
const dirsToMount = [...includeDirs, 'capture'];
|
|
41
|
-
const composeVolumes = [
|
|
42
|
-
`${projectDir}/capture:/app/capture`,
|
|
43
|
-
`${projectDir}:/app/output`,
|
|
44
|
-
...dirsToMount.map(dir => `${resolve(projectDir, dir)}:/app/${dir}`)
|
|
45
|
-
];
|
|
46
|
-
const composeEnvironment = [
|
|
47
|
-
'DISPLAY=:99',
|
|
48
|
-
`RES=${thisRunOptions.res}`,
|
|
49
|
-
`${HOST_PROJECT_DIR}=${projectDir}`,
|
|
50
|
-
`COMMAND_TO_RECORD=${HOST_PROJECT_DIR}="${projectDir}" HAIBUN_LOG_LEVEL=log ${haibunEnvc} npm run ${testToRun} ${filter}`
|
|
51
|
-
];
|
|
52
|
-
if (thisRunOptions.tts) {
|
|
53
|
-
composeEnvironment.push('HAIBUN_O_HAIBUN_TTS_CMD=/app/speak-to-wav.sh @WHAT@', 'HAIBUN_O_HAIBUN_TTS_PLAY=aplay @WHAT@');
|
|
54
|
-
}
|
|
55
|
-
if (thisRunOptions.capture) {
|
|
56
|
-
composeEnvironment.push('HAIBUN_O_HAIBUN_CAPTURE_START=/app/capture-start.sh', 'HAIBUN_O_HAIBUN_CAPTURE_STOP=/app/capture-stop.sh');
|
|
57
|
-
}
|
|
58
|
-
const composeFile = `
|
|
59
|
-
services:
|
|
60
|
-
haibun-recorder:
|
|
61
|
-
build:
|
|
62
|
-
context: ${buildContextDir}
|
|
63
|
-
dockerfile: ${utilDir}/Dockerfile
|
|
64
|
-
volumes:
|
|
65
|
-
${asYamlOptions(composeVolumes)}
|
|
66
|
-
environment:
|
|
67
|
-
${(asYamlOptions(composeEnvironment))}
|
|
68
|
-
`;
|
|
69
|
-
writeFileSync(tmpFile, composeFile);
|
|
70
|
-
console.log(`Building then starting vcapture container using ${utilDir}`);
|
|
71
|
-
console.log(`Mounting directories:\n${composeVolumes}`);
|
|
72
|
-
try {
|
|
73
|
-
const cmd = `docker compose -f docker-compose.yml -f ${tmpFile} up ${thisRunOptions.recreate ? '--force-recreate --build' : ''}`;
|
|
74
|
-
console.log('building with:', cmd);
|
|
75
|
-
execSync(cmd, {
|
|
76
|
-
cwd: utilDir,
|
|
77
|
-
stdio: 'inherit',
|
|
78
|
-
env: {
|
|
79
|
-
...process.env,
|
|
80
|
-
CURRENT_DIR: projectDir,
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
finally {
|
|
85
|
-
unlinkSync(tmpFile);
|
|
86
|
-
execSync(`rm -rf ${buildContextDir}`);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
catch (error) {
|
|
90
|
-
console.error('Error:', error.stderr?.toString() || error.message);
|
|
91
|
-
process.exit(1);
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
function asYamlOptions(options) {
|
|
95
|
-
return options.map(o => ` - ${o}`).join('\n');
|
|
96
|
-
}
|
|
97
|
-
export function parseVCaptureArgs(args, printHelp) {
|
|
98
|
-
const runOptions = {
|
|
99
|
-
recreate: false,
|
|
100
|
-
tts: false,
|
|
101
|
-
capture: true,
|
|
102
|
-
res: '1280x720',
|
|
103
|
-
passEnv: undefined
|
|
104
|
-
};
|
|
105
|
-
args.reduce((acc, arg) => {
|
|
106
|
-
if (arg.startsWith('--')) {
|
|
107
|
-
const [what, ...v] = arg.split('=');
|
|
108
|
-
const value = v.join('=');
|
|
109
|
-
if (what === '--recreate') {
|
|
110
|
-
runOptions.recreate = value !== 'false';
|
|
111
|
-
return acc;
|
|
112
|
-
}
|
|
113
|
-
else if (what === '--tts') {
|
|
114
|
-
runOptions.tts = value !== 'false';
|
|
115
|
-
return acc;
|
|
116
|
-
}
|
|
117
|
-
else if (what === '--no-capture') {
|
|
118
|
-
runOptions.capture = false;
|
|
119
|
-
return acc;
|
|
120
|
-
}
|
|
121
|
-
else if (what === '--pass-env') {
|
|
122
|
-
runOptions.passEnv = value || args.shift();
|
|
123
|
-
return acc;
|
|
124
|
-
}
|
|
125
|
-
else if (what === '--res') {
|
|
126
|
-
const res = value || args.shift();
|
|
127
|
-
if (res && res.match(/^\d+x\d+$/)) {
|
|
128
|
-
runOptions.res = res;
|
|
129
|
-
return acc;
|
|
130
|
-
}
|
|
131
|
-
console.error(`Missing or incorrect WxH value for --res: ${res}`);
|
|
132
|
-
printHelp();
|
|
133
|
-
}
|
|
134
|
-
else if (arg === '--help') {
|
|
135
|
-
printHelp(0);
|
|
136
|
-
}
|
|
137
|
-
console.error(`unknown -- arg ${arg}`);
|
|
138
|
-
printHelp();
|
|
139
|
-
}
|
|
140
|
-
return [...acc, arg];
|
|
141
|
-
}, []);
|
|
142
|
-
const [testToRun, filter, ...includeDirs] = args;
|
|
143
|
-
if (!testToRun || includeDirs.length === 0) {
|
|
144
|
-
printHelp();
|
|
145
|
-
}
|
|
146
|
-
return { runOptions, testToRun, filter, includeDirs };
|
|
147
|
-
}
|
|
148
|
-
const args = process.argv.slice(2);
|
|
149
|
-
const { runOptions: TRunOptions, testToRun, filter, includeDirs, runOptions } = parseVCaptureArgs(args, printHelp);
|
|
150
|
-
runContainer(testToRun, filter, includeDirs, runOptions);
|
|
151
|
-
function printHelp(exitCode = 1) {
|
|
152
|
-
console.error(`Usage: ${process.argv[1]} [--pass-env] [--recreate[=boolean]] [--tts[=boolean]] [--no-capture] [--help] [--res WxH] script filter features files ...`);
|
|
153
|
-
process.exit(exitCode);
|
|
154
|
-
}
|
|
155
|
-
//# sourceMappingURL=index%20copy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index copy.js","sourceRoot":"","sources":["../../src/vcapture/index copy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
type TRunOptions = {
|
|
3
|
-
recreate: boolean;
|
|
4
|
-
tts: boolean;
|
|
5
|
-
capture: boolean;
|
|
6
|
-
res: string;
|
|
7
|
-
passEnv: string | undefined;
|
|
8
|
-
};
|
|
9
|
-
export declare const runContainer: (testToRun: any, filter: any, includeDirs: any[], thisRunOptions: TRunOptions) => void;
|
|
10
|
-
export declare function parseVCaptureArgs(args: string[], printHelp: (exitCode?: number) => void): {
|
|
11
|
-
runOptions: TRunOptions;
|
|
12
|
-
testToRun: string;
|
|
13
|
-
filter: string;
|
|
14
|
-
includeDirs: string[];
|
|
15
|
-
};
|
|
16
|
-
declare const TRunOptions: TRunOptions;
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=run-vcapture.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-vcapture.d.ts","sourceRoot":"","sources":["../../src/vcapture/run-vcapture.ts"],"names":[],"mappings":";AAmBA,KAAK,WAAW,GAAG;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,CAAA;AAGD,eAAO,MAAM,YAAY,GAAI,cAAS,EAAE,WAAM,EAAE,kBAAgB,EAAE,gBAAgB,WAAW,SAkF5F,CAAC;AAKF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI;;;;;EA8CvF;AAGD,QAAA,MAAoB,WAAW,aAAmF,CAAC"}
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { getPackageLocation } from '@haibun/core/build/lib/util/workspace-lib.js';
|
|
3
|
-
import { execSync } from 'child_process';
|
|
4
|
-
import { resolve } from 'path';
|
|
5
|
-
import { writeFileSync, unlinkSync, readFileSync, mkdirSync, existsSync } from 'fs';
|
|
6
|
-
import { tmpdir } from 'os';
|
|
7
|
-
import { HOST_PROJECT_DIR } from '@haibun/core/build/lib/defs.js';
|
|
8
|
-
process.on('unhandledRejection', (err) => {
|
|
9
|
-
console.error('cli Unhandled Rejection:', err);
|
|
10
|
-
if (err && err.stack) {
|
|
11
|
-
console.error(err.stack);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
console.error(err);
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
export const runContainer = (testToRun, filter, includeDirs = [], thisRunOptions) => {
|
|
18
|
-
try {
|
|
19
|
-
const utilDir = resolve(getPackageLocation(import.meta), '..', '..', 'vcapture');
|
|
20
|
-
const projectDir = process.cwd();
|
|
21
|
-
const tmpFile = resolve(tmpdir(), `docker-compose.override-${Date.now()}.yml`);
|
|
22
|
-
const envs = existsSync(`${projectDir}/.env`) ? readFileSync(`${projectDir}/.env`, 'utf8').split('\n').filter(l => l.length > 0) : [];
|
|
23
|
-
if (thisRunOptions.passEnv) {
|
|
24
|
-
envs.push(thisRunOptions.passEnv);
|
|
25
|
-
}
|
|
26
|
-
const haibunEnvc = (envs.length > 0) ? `HAIBUN_ENV=${envs.join(',')} ` : '';
|
|
27
|
-
if (thisRunOptions.passEnv) {
|
|
28
|
-
haibunEnvc;
|
|
29
|
-
}
|
|
30
|
-
const captureDir = resolve(projectDir, 'capture');
|
|
31
|
-
console.info('vcapture running with options:', thisRunOptions);
|
|
32
|
-
if (!existsSync(captureDir)) {
|
|
33
|
-
console.log('Creating capture directory');
|
|
34
|
-
mkdirSync(captureDir, { recursive: true });
|
|
35
|
-
}
|
|
36
|
-
const buildContextDir = resolve(tmpdir(), `build-context-${Date.now()}`);
|
|
37
|
-
mkdirSync(buildContextDir, { recursive: true });
|
|
38
|
-
execSync(`cp ${projectDir}/*.json ${buildContextDir}/`);
|
|
39
|
-
execSync(`cp ${utilDir}/*.sh ${utilDir}/kokoro-speak.cjs ${buildContextDir}/`);
|
|
40
|
-
const dirsToMount = [...includeDirs, 'capture'];
|
|
41
|
-
const composeVolumes = [
|
|
42
|
-
`${projectDir}/capture:/app/capture`,
|
|
43
|
-
`${projectDir}:/app/output`,
|
|
44
|
-
...dirsToMount.map(dir => `${resolve(projectDir, dir)}:/app/${dir}`)
|
|
45
|
-
];
|
|
46
|
-
const composeEnvironment = [
|
|
47
|
-
'DISPLAY=:99',
|
|
48
|
-
`RES=${thisRunOptions.res}`,
|
|
49
|
-
`${HOST_PROJECT_DIR}=${projectDir}`,
|
|
50
|
-
`COMMAND_TO_RECORD=${HOST_PROJECT_DIR}="${projectDir}" HAIBUN_LOG_LEVEL=log ${haibunEnvc} npm run ${testToRun} ${filter}`
|
|
51
|
-
];
|
|
52
|
-
if (thisRunOptions.tts) {
|
|
53
|
-
composeEnvironment.push('HAIBUN_O_HAIBUN_TTS_CMD=/app/speak-to-wav.sh @WHAT@', 'HAIBUN_O_HAIBUN_TTS_PLAY=aplay @WHAT@');
|
|
54
|
-
}
|
|
55
|
-
if (thisRunOptions.capture) {
|
|
56
|
-
composeEnvironment.push('HAIBUN_O_HAIBUN_CAPTURE_START=/app/capture-start.sh', 'HAIBUN_O_HAIBUN_CAPTURE_STOP=/app/capture-stop.sh');
|
|
57
|
-
}
|
|
58
|
-
const composeFile = `
|
|
59
|
-
services:
|
|
60
|
-
haibun-recorder:
|
|
61
|
-
build:
|
|
62
|
-
context: ${buildContextDir}
|
|
63
|
-
dockerfile: ${utilDir}/Dockerfile
|
|
64
|
-
volumes:
|
|
65
|
-
${asYamlOptions(composeVolumes)}
|
|
66
|
-
environment:
|
|
67
|
-
${(asYamlOptions(composeEnvironment))}
|
|
68
|
-
`;
|
|
69
|
-
writeFileSync(tmpFile, composeFile);
|
|
70
|
-
console.log(`Building then starting vcapture container using ${utilDir}`);
|
|
71
|
-
console.log(`Mounting directories:\n${composeVolumes}`);
|
|
72
|
-
try {
|
|
73
|
-
const cmd = `docker compose -f docker-compose.yml -f ${tmpFile} up ${thisRunOptions.recreate ? '--force-recreate --build' : ''}`;
|
|
74
|
-
console.log('building with:', cmd);
|
|
75
|
-
execSync(cmd, {
|
|
76
|
-
cwd: utilDir,
|
|
77
|
-
stdio: 'inherit',
|
|
78
|
-
env: {
|
|
79
|
-
...process.env,
|
|
80
|
-
CURRENT_DIR: projectDir,
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
finally {
|
|
85
|
-
unlinkSync(tmpFile);
|
|
86
|
-
execSync(`rm -rf ${buildContextDir}`);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
catch (error) {
|
|
90
|
-
console.error('Error:', error.stderr?.toString() || error.message);
|
|
91
|
-
process.exit(1);
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
function asYamlOptions(options) {
|
|
95
|
-
return options.map(o => ` - ${o}`).join('\n');
|
|
96
|
-
}
|
|
97
|
-
export function parseVCaptureArgs(args, printHelp) {
|
|
98
|
-
const runOptions = {
|
|
99
|
-
recreate: false,
|
|
100
|
-
tts: false,
|
|
101
|
-
capture: true,
|
|
102
|
-
res: '1280x720',
|
|
103
|
-
passEnv: undefined
|
|
104
|
-
};
|
|
105
|
-
args.reduce((acc, arg) => {
|
|
106
|
-
if (arg.startsWith('--')) {
|
|
107
|
-
const [what, ...v] = arg.split('=');
|
|
108
|
-
const value = v.join('=');
|
|
109
|
-
if (what === '--recreate') {
|
|
110
|
-
runOptions.recreate = value !== 'false';
|
|
111
|
-
return acc;
|
|
112
|
-
}
|
|
113
|
-
else if (what === '--tts') {
|
|
114
|
-
runOptions.tts = value !== 'false';
|
|
115
|
-
return acc;
|
|
116
|
-
}
|
|
117
|
-
else if (what === '--no-capture') {
|
|
118
|
-
runOptions.capture = false;
|
|
119
|
-
return acc;
|
|
120
|
-
}
|
|
121
|
-
else if (what === '--pass-env') {
|
|
122
|
-
runOptions.passEnv = value || args.shift();
|
|
123
|
-
return acc;
|
|
124
|
-
}
|
|
125
|
-
else if (what === '--res') {
|
|
126
|
-
const res = value || args.shift();
|
|
127
|
-
if (res && res.match(/^\d+x\d+$/)) {
|
|
128
|
-
runOptions.res = res;
|
|
129
|
-
return acc;
|
|
130
|
-
}
|
|
131
|
-
console.error(`Missing or incorrect WxH value for --res: ${res}`);
|
|
132
|
-
printHelp();
|
|
133
|
-
}
|
|
134
|
-
else if (arg === '--help') {
|
|
135
|
-
printHelp(0);
|
|
136
|
-
}
|
|
137
|
-
console.error(`unknown -- arg ${arg}`);
|
|
138
|
-
printHelp();
|
|
139
|
-
}
|
|
140
|
-
return [...acc, arg];
|
|
141
|
-
}, []);
|
|
142
|
-
const [testToRun, filter, ...includeDirs] = args;
|
|
143
|
-
if (!testToRun || includeDirs.length === 0) {
|
|
144
|
-
printHelp();
|
|
145
|
-
}
|
|
146
|
-
return { runOptions, testToRun, filter, includeDirs };
|
|
147
|
-
}
|
|
148
|
-
const args = process.argv.slice(2);
|
|
149
|
-
const { runOptions: TRunOptions, testToRun, filter, includeDirs, runOptions } = parseVCaptureArgs(args, printHelp);
|
|
150
|
-
runContainer(testToRun, filter, includeDirs, runOptions);
|
|
151
|
-
function printHelp(exitCode = 1) {
|
|
152
|
-
console.error(`Usage: ${process.argv[1]} [--pass-env] [--recreate[=boolean]] [--tts[=boolean]] [--no-capture] [--help] [--res WxH] script filter features files ...`);
|
|
153
|
-
process.exit(exitCode);
|
|
154
|
-
}
|
|
155
|
-
//# sourceMappingURL=run-vcapture.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-vcapture.js","sourceRoot":"","sources":["../../src/vcapture/run-vcapture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/walkthrough-container/index.ts"],"names":[],"mappings":""}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { getPackageLocation } from '@haibun/core/build/lib/util/workspace-lib.js';
|
|
3
|
-
import { execSync } from 'child_process';
|
|
4
|
-
import { resolve } from 'path';
|
|
5
|
-
import { writeFileSync, unlinkSync, readFileSync, mkdirSync, existsSync } from 'fs';
|
|
6
|
-
import { tmpdir } from 'os';
|
|
7
|
-
import { HOST_PROJECT_DIR } from '@haibun/core/build/lib/defs.js';
|
|
8
|
-
const runContainer = (testToRun, filter, includeDirs = [], recreate) => {
|
|
9
|
-
try {
|
|
10
|
-
const utilDir = resolve(getPackageLocation(import.meta), '..', '..', 'walkthrough-container');
|
|
11
|
-
const projectDir = process.cwd();
|
|
12
|
-
const tmpFile = resolve(tmpdir(), `docker-compose.override-${Date.now()}.yml`);
|
|
13
|
-
const envs = existsSync(`${projectDir}/.env`) ? readFileSync(`${projectDir}/.env`, 'utf8').split('\n').filter(l => l.length > 0) : [];
|
|
14
|
-
const haibunEnvc = (envs.length > 0) ? `HAIBUN_ENV=${envs.join(',')} ` : '';
|
|
15
|
-
// Ensure capture directory exists
|
|
16
|
-
const captureDir = resolve(projectDir, 'capture');
|
|
17
|
-
if (!existsSync(captureDir)) {
|
|
18
|
-
console.log('Creating capture directory');
|
|
19
|
-
mkdirSync(captureDir, { recursive: true });
|
|
20
|
-
}
|
|
21
|
-
// Add capture to directories to mount
|
|
22
|
-
const dirsToMount = [...includeDirs, 'capture'];
|
|
23
|
-
// Create docker compose config file with volumes
|
|
24
|
-
const volumeConfig = dirsToMount.map(dir => {
|
|
25
|
-
const sourcePath = resolve(projectDir, dir);
|
|
26
|
-
return ` - ${sourcePath}:/app/${dir}`;
|
|
27
|
-
}).join('\n');
|
|
28
|
-
const buildContextDir = resolve(tmpdir(), `build-context-${Date.now()}`);
|
|
29
|
-
mkdirSync(buildContextDir, { recursive: true });
|
|
30
|
-
// Copy project's package files to build context
|
|
31
|
-
execSync(`cp ${projectDir}/package*.json ${buildContextDir}/`);
|
|
32
|
-
// Copy container files to build context
|
|
33
|
-
execSync(`cp ${utilDir}/speak-to-wav.sh ${utilDir}/kokoro-speak.cjs ${utilDir}/entrypoint.sh ${buildContextDir}/`);
|
|
34
|
-
const composeFile = `
|
|
35
|
-
services:
|
|
36
|
-
haibun-recorder:
|
|
37
|
-
build:
|
|
38
|
-
context: ${buildContextDir}
|
|
39
|
-
dockerfile: ${utilDir}/Dockerfile
|
|
40
|
-
volumes:
|
|
41
|
-
- ${projectDir}/capture:/app/capture
|
|
42
|
-
- ${projectDir}:/app/output
|
|
43
|
-
${volumeConfig}
|
|
44
|
-
environment:
|
|
45
|
-
- DISPLAY=:99
|
|
46
|
-
- HAIBUN_O_HAIBUN_TTS_CMD=/app/speak-to-wav.sh @WHAT@
|
|
47
|
-
- HAIBUN_O_HAIBUN_TTS_PLAY=aplay @WHAT@
|
|
48
|
-
- ${HOST_PROJECT_DIR}=${projectDir}
|
|
49
|
-
- COMMAND_TO_RECORD=${HOST_PROJECT_DIR}="${projectDir}" HAIBUN_LOG_LEVEL=log ${haibunEnvc} npm run ${testToRun} ${filter}
|
|
50
|
-
`;
|
|
51
|
-
writeFileSync(tmpFile, composeFile);
|
|
52
|
-
console.log(`Building then starting walkthrough container using ${utilDir}`);
|
|
53
|
-
console.log(`Mounting directories:\n${volumeConfig}`);
|
|
54
|
-
try {
|
|
55
|
-
execSync(`docker compose -f docker-compose.yml -f ${tmpFile} up --build ${recreate ? '--force-recreate' : ''}`, {
|
|
56
|
-
cwd: utilDir,
|
|
57
|
-
stdio: 'inherit',
|
|
58
|
-
env: {
|
|
59
|
-
...process.env,
|
|
60
|
-
CURRENT_DIR: projectDir,
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
finally {
|
|
65
|
-
unlinkSync(tmpFile);
|
|
66
|
-
execSync(`rm -rf ${buildContextDir}`);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
console.error('Error:', error.stderr?.toString() || error.message);
|
|
71
|
-
process.exit(1);
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
let recreate = false;
|
|
75
|
-
const args = process.argv.slice(2).reduce((acc, arg) => {
|
|
76
|
-
if (arg === '--recreate') {
|
|
77
|
-
recreate = true;
|
|
78
|
-
return acc;
|
|
79
|
-
}
|
|
80
|
-
else if (arg === '--help') {
|
|
81
|
-
printHelp();
|
|
82
|
-
}
|
|
83
|
-
return [...acc, arg];
|
|
84
|
-
}, []);
|
|
85
|
-
const [testToRun, filter, ...includeDirs] = args;
|
|
86
|
-
if (!testToRun || includeDirs.length === 0) {
|
|
87
|
-
printHelp();
|
|
88
|
-
}
|
|
89
|
-
runContainer(testToRun, filter, includeDirs, recreate);
|
|
90
|
-
function printHelp() {
|
|
91
|
-
console.error(`Usage: ${process.argv[1]} [--rebuild] script filter features files ...`);
|
|
92
|
-
process.exit(1);
|
|
93
|
-
}
|
|
94
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/walkthrough-container/index.ts"],"names":[],"mappings":"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"}
|