@backstage/cli 0.34.6-next.0 → 0.34.6-next.1
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/CHANGELOG.md +9 -0
- package/dist/lib/errors.cjs.js +0 -10
- package/dist/lib/versioning/packages.cjs.js +3 -7
- package/dist/lib/versioning/yarn.cjs.js +2 -8
- package/dist/modules/build/commands/package/start/startFrontend.cjs.js +1 -1
- package/dist/modules/build/lib/buildFrontend.cjs.js +1 -1
- package/dist/modules/build/lib/bundler/config.cjs.js +3 -3
- package/dist/modules/build/lib/packager/createDistWorkspace.cjs.js +7 -7
- package/dist/modules/info/commands/info.cjs.js +2 -3
- package/dist/modules/maintenance/commands/repo/clean.cjs.js +4 -9
- package/dist/modules/migrate/commands/packageLintConfigs.cjs.js +2 -2
- package/dist/modules/migrate/commands/versions/bump.cjs.js +1 -2
- package/dist/modules/migrate/lib/utils.cjs.js +5 -5
- package/dist/modules/new/lib/execution/PortableTemplater.cjs.js +1 -2
- package/dist/modules/new/lib/execution/executePortableTemplate.cjs.js +20 -8
- package/dist/modules/new/lib/tasks.cjs.js +0 -26
- package/dist/modules/test/commands/package/test.cjs.js +3 -3
- package/dist/modules/test/commands/repo/test.cjs.js +5 -6
- package/dist/packages/cli/package.json.cjs.js +1 -1
- package/dist/packages/core-components/package.json.cjs.js +1 -1
- package/dist/packages/dev-utils/package.json.cjs.js +1 -1
- package/package.json +5 -5
- package/dist/lib/run.cjs.js +0 -82
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @backstage/cli
|
|
2
2
|
|
|
3
|
+
## 0.34.6-next.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 7fbac5c: Updated to use new utilities from `@backstage/cli-common`.
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @backstage/cli-node@0.2.16-next.1
|
|
10
|
+
- @backstage/cli-common@0.1.16-next.1
|
|
11
|
+
|
|
3
12
|
## 0.34.6-next.0
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
package/dist/lib/errors.cjs.js
CHANGED
|
@@ -7,15 +7,6 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
7
7
|
|
|
8
8
|
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
9
9
|
|
|
10
|
-
class ExitCodeError extends errors.CustomErrorBase {
|
|
11
|
-
code;
|
|
12
|
-
constructor(code, command) {
|
|
13
|
-
super(
|
|
14
|
-
command ? `Command '${command}' exited with code ${code}` : `Child exited with code ${code}`
|
|
15
|
-
);
|
|
16
|
-
this.code = code;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
10
|
function exit(message, code = 1) {
|
|
20
11
|
process.stderr.write(`
|
|
21
12
|
${chalk__default.default.red(message)}
|
|
@@ -67,6 +58,5 @@ ${chalk__default.default.red(errors.stringifyError(error))}
|
|
|
67
58
|
}
|
|
68
59
|
}
|
|
69
60
|
|
|
70
|
-
exports.ExitCodeError = ExitCodeError;
|
|
71
61
|
exports.exitWithError = exitWithError;
|
|
72
62
|
//# sourceMappingURL=errors.cjs.js.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var minimatch = require('minimatch');
|
|
4
4
|
var getPackages = require('@manypkg/get-packages');
|
|
5
5
|
var yarn = require('./yarn.cjs.js');
|
|
6
|
-
var
|
|
6
|
+
var cliCommon = require('@backstage/cli-common');
|
|
7
7
|
var errors = require('@backstage/errors');
|
|
8
8
|
|
|
9
9
|
const DEP_TYPES = [
|
|
@@ -16,11 +16,7 @@ async function fetchPackageInfo(name) {
|
|
|
16
16
|
const yarnVersion = await yarn.detectYarnVersion();
|
|
17
17
|
const cmd = yarnVersion === "classic" ? ["info"] : ["npm", "info"];
|
|
18
18
|
try {
|
|
19
|
-
const
|
|
20
|
-
"yarn",
|
|
21
|
-
[...cmd, "--json", name],
|
|
22
|
-
{ shell: true }
|
|
23
|
-
);
|
|
19
|
+
const output = await cliCommon.runOutput(["yarn", ...cmd, "--json", name]);
|
|
24
20
|
if (!output) {
|
|
25
21
|
throw new errors.NotFoundError(
|
|
26
22
|
`No package information found for package ${name}`
|
|
@@ -38,7 +34,7 @@ async function fetchPackageInfo(name) {
|
|
|
38
34
|
if (yarnVersion === "classic") {
|
|
39
35
|
throw error;
|
|
40
36
|
}
|
|
41
|
-
if (error
|
|
37
|
+
if (error instanceof Error && "stdout" in error && typeof error.stdout === "string" && error.stdout.includes("Response Code: 404")) {
|
|
42
38
|
throw new errors.NotFoundError(
|
|
43
39
|
`No package information found for package ${name}`
|
|
44
40
|
);
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var errors = require('@backstage/errors');
|
|
4
|
-
var
|
|
5
|
-
var util = require('util');
|
|
4
|
+
var cliCommon = require('@backstage/cli-common');
|
|
6
5
|
|
|
7
|
-
const execFile = util.promisify(child_process.execFile);
|
|
8
6
|
const versions = /* @__PURE__ */ new Map();
|
|
9
7
|
function detectYarnVersion(dir) {
|
|
10
8
|
const cwd = process.cwd();
|
|
@@ -13,16 +11,12 @@ function detectYarnVersion(dir) {
|
|
|
13
11
|
}
|
|
14
12
|
const promise = Promise.resolve().then(async () => {
|
|
15
13
|
try {
|
|
16
|
-
const
|
|
17
|
-
shell: true,
|
|
14
|
+
const stdout = await cliCommon.runOutput(["yarn", "--version"], {
|
|
18
15
|
cwd
|
|
19
16
|
});
|
|
20
17
|
return stdout.trim().startsWith("1.") ? "classic" : "berry";
|
|
21
18
|
} catch (error) {
|
|
22
19
|
errors.assertError(error);
|
|
23
|
-
if ("stderr" in error) {
|
|
24
|
-
process.stderr.write(error.stderr);
|
|
25
|
-
}
|
|
26
20
|
throw new errors.ForwardedError("Failed to determine yarn version", error);
|
|
27
21
|
}
|
|
28
22
|
});
|
|
@@ -13,7 +13,7 @@ require('react-dev-utils/ModuleScopePlugin');
|
|
|
13
13
|
require('@module-federation/enhanced/rspack');
|
|
14
14
|
var paths = require('../../../../../lib/paths.cjs.js');
|
|
15
15
|
require('lodash/pickBy');
|
|
16
|
-
require('
|
|
16
|
+
require('@backstage/cli-common');
|
|
17
17
|
require('../../../../../lib/version.cjs.js');
|
|
18
18
|
var hasReactDomClient = require('../../../lib/bundler/hasReactDomClient.cjs.js');
|
|
19
19
|
require('@manypkg/get-packages');
|
|
@@ -16,7 +16,7 @@ require('html-webpack-plugin');
|
|
|
16
16
|
require('react-dev-utils/ModuleScopePlugin');
|
|
17
17
|
require('@module-federation/enhanced/rspack');
|
|
18
18
|
require('lodash/pickBy');
|
|
19
|
-
require('
|
|
19
|
+
require('@backstage/cli-common');
|
|
20
20
|
require('../../../lib/version.cjs.js');
|
|
21
21
|
require('yn');
|
|
22
22
|
require('@manypkg/get-packages');
|
|
@@ -11,7 +11,7 @@ var paths = require('../../../../lib/paths.cjs.js');
|
|
|
11
11
|
var fs = require('fs-extra');
|
|
12
12
|
var optimization = require('./optimization.cjs.js');
|
|
13
13
|
var pickBy = require('lodash/pickBy');
|
|
14
|
-
var
|
|
14
|
+
var cliCommon = require('@backstage/cli-common');
|
|
15
15
|
var transforms = require('./transforms.cjs.js');
|
|
16
16
|
var version = require('../../../../lib/version.cjs.js');
|
|
17
17
|
var yn = require('yn');
|
|
@@ -48,12 +48,12 @@ async function readBuildInfo() {
|
|
|
48
48
|
const timestamp = Date.now();
|
|
49
49
|
let commit;
|
|
50
50
|
try {
|
|
51
|
-
commit = await
|
|
51
|
+
commit = await cliCommon.runOutput(["git", "rev-parse", "HEAD"]);
|
|
52
52
|
} catch (error) {
|
|
53
53
|
}
|
|
54
54
|
let gitVersion;
|
|
55
55
|
try {
|
|
56
|
-
gitVersion = await
|
|
56
|
+
gitVersion = await cliCommon.runOutput(["git", "describe", "--always"]);
|
|
57
57
|
} catch (error) {
|
|
58
58
|
}
|
|
59
59
|
if (commit === void 0 || gitVersion === void 0) {
|
|
@@ -7,7 +7,7 @@ var os = require('os');
|
|
|
7
7
|
var tar = require('tar');
|
|
8
8
|
var partition = require('lodash/partition');
|
|
9
9
|
var paths = require('../../../../lib/paths.cjs.js');
|
|
10
|
-
var
|
|
10
|
+
var cliCommon = require('@backstage/cli-common');
|
|
11
11
|
var _package = require('../../../../packages/cli/package.json.cjs.js');
|
|
12
12
|
var packager = require('../builder/packager.cjs.js');
|
|
13
13
|
var types = require('../builder/types.cjs.js');
|
|
@@ -104,11 +104,11 @@ async function createDistWorkspace(packageNames, options = {}) {
|
|
|
104
104
|
await parallel.runParallelWorkers({
|
|
105
105
|
items: customBuild,
|
|
106
106
|
worker: async ({ name, dir, args }) => {
|
|
107
|
-
await
|
|
107
|
+
await cliCommon.run(["yarn", "run", "build", ...args || []], {
|
|
108
108
|
cwd: dir,
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
});
|
|
109
|
+
onStdout: prefixLogFunc(`${name}: `, "stdout"),
|
|
110
|
+
onStderr: prefixLogFunc(`${name}: `, "stderr")
|
|
111
|
+
}).waitForExit();
|
|
112
112
|
}
|
|
113
113
|
});
|
|
114
114
|
}
|
|
@@ -169,9 +169,9 @@ async function moveToDistWorkspace(workspaceDir, localPackages, alwaysPack, enab
|
|
|
169
169
|
async function pack(target, archive) {
|
|
170
170
|
console.log(`Repacking ${target.name} into dist workspace`);
|
|
171
171
|
const archivePath = path.resolve(workspaceDir, archive);
|
|
172
|
-
await
|
|
172
|
+
await cliCommon.run(["yarn", "pack", "--filename", archivePath], {
|
|
173
173
|
cwd: target.dir
|
|
174
|
-
});
|
|
174
|
+
}).waitForExit();
|
|
175
175
|
const outputDir = path.relative(paths.paths.targetRoot, target.dir);
|
|
176
176
|
const absoluteOutputPath = path.resolve(workspaceDir, outputDir);
|
|
177
177
|
await fs__default.default.ensureDir(absoluteOutputPath);
|
|
@@ -4,12 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _package = require('../../../packages/cli/package.json.cjs.js');
|
|
6
6
|
var os = require('os');
|
|
7
|
-
var
|
|
7
|
+
var cliCommon = require('@backstage/cli-common');
|
|
8
8
|
var paths = require('../../../lib/paths.cjs.js');
|
|
9
9
|
var Lockfile = require('../../../lib/versioning/Lockfile.cjs.js');
|
|
10
10
|
require('minimatch');
|
|
11
11
|
require('@manypkg/get-packages');
|
|
12
|
-
require('../../../lib/versioning/yarn.cjs.js');
|
|
13
12
|
require('@backstage/errors');
|
|
14
13
|
var fs = require('fs-extra');
|
|
15
14
|
|
|
@@ -20,7 +19,7 @@ var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
|
20
19
|
|
|
21
20
|
var info = async () => {
|
|
22
21
|
await new Promise(async () => {
|
|
23
|
-
const yarnVersion = await
|
|
22
|
+
const yarnVersion = await cliCommon.runOutput(["yarn", "--version"]);
|
|
24
23
|
const isLocal = fs__default.default.existsSync(paths.paths.resolveOwn("./src"));
|
|
25
24
|
const backstageFile = paths.paths.resolveTargetRoot("backstage.json");
|
|
26
25
|
let backstageVersion = "N/A";
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var child_process = require('child_process');
|
|
4
3
|
var fs = require('fs-extra');
|
|
5
4
|
var path = require('path');
|
|
6
|
-
var util = require('util');
|
|
7
5
|
var cliNode = require('@backstage/cli-node');
|
|
8
6
|
var paths = require('../../../../lib/paths.cjs.js');
|
|
7
|
+
var cliCommon = require('@backstage/cli-common');
|
|
9
8
|
|
|
10
9
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
11
10
|
|
|
12
11
|
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
13
12
|
|
|
14
|
-
const execFile = util.promisify(child_process.execFile);
|
|
15
13
|
async function command() {
|
|
16
14
|
const packages = await cliNode.PackageGraph.listTargetPackages();
|
|
17
15
|
await fs__default.default.remove(paths.paths.resolveTargetRoot("dist"));
|
|
@@ -27,12 +25,9 @@ async function command() {
|
|
|
27
25
|
await fs__default.default.remove(path.resolve(pkg.dir, "dist-types"));
|
|
28
26
|
await fs__default.default.remove(path.resolve(pkg.dir, "coverage"));
|
|
29
27
|
} else if (cleanScript) {
|
|
30
|
-
|
|
31
|
-
cwd: pkg.dir
|
|
32
|
-
|
|
33
|
-
});
|
|
34
|
-
process.stdout.write(result.stdout);
|
|
35
|
-
process.stderr.write(result.stderr);
|
|
28
|
+
await cliCommon.run(["yarn", "run", "clean"], {
|
|
29
|
+
cwd: pkg.dir
|
|
30
|
+
}).waitForExit();
|
|
36
31
|
}
|
|
37
32
|
}
|
|
38
33
|
})
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var fs = require('fs-extra');
|
|
4
4
|
var path = require('path');
|
|
5
5
|
var cliNode = require('@backstage/cli-node');
|
|
6
|
-
var
|
|
6
|
+
var cliCommon = require('@backstage/cli-common');
|
|
7
7
|
|
|
8
8
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
9
9
|
|
|
@@ -65,7 +65,7 @@ async function command() {
|
|
|
65
65
|
} catch {
|
|
66
66
|
}
|
|
67
67
|
if (hasPrettier) {
|
|
68
|
-
await
|
|
68
|
+
await cliCommon.runOutput(["prettier", "--write", ...configPaths]);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
|
|
@@ -18,7 +18,6 @@ var parallel = require('../../../../lib/parallel.cjs.js');
|
|
|
18
18
|
var releaseManifests = require('@backstage/release-manifests');
|
|
19
19
|
var migrate = require('./migrate.cjs.js');
|
|
20
20
|
var utils = require('../../lib/utils.cjs.js');
|
|
21
|
-
var run = require('../../../../lib/run.cjs.js');
|
|
22
21
|
|
|
23
22
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
24
23
|
|
|
@@ -94,7 +93,7 @@ var bump = async (opts) => {
|
|
|
94
93
|
);
|
|
95
94
|
console.log();
|
|
96
95
|
const yarnPluginUrl = process.env.BACKSTAGE_VERSIONS_BASE_URL ? `${process.env.BACKSTAGE_VERSIONS_BASE_URL}/v1/releases/${releaseManifest.releaseVersion}/yarn-plugin` : `https://versions.backstage.io/v1/releases/${releaseManifest.releaseVersion}/yarn-plugin`;
|
|
97
|
-
await
|
|
96
|
+
await cliCommon.run(["yarn", "plugin", "import", yarnPluginUrl]).waitForExit();
|
|
98
97
|
console.log();
|
|
99
98
|
}
|
|
100
99
|
const dependencyMap = await packages.mapDependencies(paths.paths.targetDir, pattern);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var ora = require('ora');
|
|
4
4
|
var chalk = require('chalk');
|
|
5
|
-
var
|
|
5
|
+
var cliCommon = require('@backstage/cli-common');
|
|
6
6
|
|
|
7
7
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
8
8
|
|
|
@@ -17,7 +17,7 @@ async function runYarnInstall() {
|
|
|
17
17
|
}).start();
|
|
18
18
|
const installOutput = new Array();
|
|
19
19
|
try {
|
|
20
|
-
await
|
|
20
|
+
await cliCommon.run(["yarn", "install"], {
|
|
21
21
|
env: {
|
|
22
22
|
FORCE_COLOR: "true",
|
|
23
23
|
// We filter out all of the npm_* environment variables that are added when
|
|
@@ -29,9 +29,9 @@ async function runYarnInstall() {
|
|
|
29
29
|
)
|
|
30
30
|
)
|
|
31
31
|
},
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
});
|
|
32
|
+
onStdout: (data) => installOutput.push(data),
|
|
33
|
+
onStderr: (data) => installOutput.push(data)
|
|
34
|
+
}).waitForExit();
|
|
35
35
|
spinner.succeed();
|
|
36
36
|
} catch (error) {
|
|
37
37
|
spinner.fail();
|
|
@@ -12,9 +12,8 @@ var lowerFirst = require('lodash/lowerFirst');
|
|
|
12
12
|
var Lockfile = require('../../../../lib/versioning/Lockfile.cjs.js');
|
|
13
13
|
require('minimatch');
|
|
14
14
|
require('@manypkg/get-packages');
|
|
15
|
-
require('../../../../lib/versioning/yarn.cjs.js');
|
|
16
|
-
require('../../../../lib/run.cjs.js');
|
|
17
15
|
require('@backstage/errors');
|
|
16
|
+
require('@backstage/cli-common');
|
|
18
17
|
var paths = require('../../../../lib/paths.cjs.js');
|
|
19
18
|
var version = require('../../../../lib/version.cjs.js');
|
|
20
19
|
var yarnPlugin = require('../../../../lib/yarnPlugin.cjs.js');
|
|
@@ -5,6 +5,7 @@ var codeowners = require('../codeowners/codeowners.cjs.js');
|
|
|
5
5
|
var tasks = require('../tasks.cjs.js');
|
|
6
6
|
var installNewPackage = require('./installNewPackage.cjs.js');
|
|
7
7
|
var writeTemplateContents = require('./writeTemplateContents.cjs.js');
|
|
8
|
+
var cliCommon = require('@backstage/cli-common');
|
|
8
9
|
|
|
9
10
|
async function executePortableTemplate(options) {
|
|
10
11
|
const { template, input } = options;
|
|
@@ -21,14 +22,25 @@ async function executePortableTemplate(options) {
|
|
|
21
22
|
await codeowners.addCodeownersEntry(targetDir, input.owner);
|
|
22
23
|
}
|
|
23
24
|
if (!options.skipInstall) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
for (const command of [
|
|
26
|
+
["yarn", "install"],
|
|
27
|
+
["yarn", "lint", "--fix"]
|
|
28
|
+
]) {
|
|
29
|
+
const commandStr = command.join(" ");
|
|
30
|
+
try {
|
|
31
|
+
await tasks.Task.forItem("executing", commandStr, async () => {
|
|
32
|
+
await cliCommon.run(command, {
|
|
33
|
+
cwd: targetDir,
|
|
34
|
+
stdio: "ignore"
|
|
35
|
+
}).waitForExit();
|
|
36
|
+
});
|
|
37
|
+
} catch (error) {
|
|
38
|
+
errors.assertError(error);
|
|
39
|
+
tasks.Task.error(
|
|
40
|
+
`Warning: Failed to execute command '${commandStr}', ${error}`
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
32
44
|
}
|
|
33
45
|
tasks.Task.log();
|
|
34
46
|
tasks.Task.log(`\u{1F389} Successfully created ${template.name}`);
|
|
@@ -2,16 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
var ora = require('ora');
|
|
5
|
-
var util = require('util');
|
|
6
|
-
var child_process = require('child_process');
|
|
7
|
-
var errors = require('@backstage/errors');
|
|
8
5
|
|
|
9
6
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
10
7
|
|
|
11
8
|
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
12
9
|
var ora__default = /*#__PURE__*/_interopDefaultCompat(ora);
|
|
13
10
|
|
|
14
|
-
const exec = util.promisify(child_process.exec);
|
|
15
11
|
const TASK_NAME_MAX_LENGTH = 14;
|
|
16
12
|
class Task {
|
|
17
13
|
static log(name = "") {
|
|
@@ -49,28 +45,6 @@ ${chalk__default.default.red(message)}
|
|
|
49
45
|
throw error;
|
|
50
46
|
}
|
|
51
47
|
}
|
|
52
|
-
static async forCommand(command, options) {
|
|
53
|
-
try {
|
|
54
|
-
await Task.forItem("executing", command, async () => {
|
|
55
|
-
await exec(command, { cwd: options?.cwd });
|
|
56
|
-
});
|
|
57
|
-
} catch (error) {
|
|
58
|
-
errors.assertError(error);
|
|
59
|
-
if (error.stderr) {
|
|
60
|
-
process.stderr.write(error.stderr);
|
|
61
|
-
}
|
|
62
|
-
if (error.stdout) {
|
|
63
|
-
process.stdout.write(error.stdout);
|
|
64
|
-
}
|
|
65
|
-
if (options?.optional) {
|
|
66
|
-
Task.error(`Warning: Failed to execute command ${chalk__default.default.cyan(command)}`);
|
|
67
|
-
} else {
|
|
68
|
-
throw new Error(
|
|
69
|
-
`Failed to execute command '${chalk__default.default.cyan(command)}', ${error}`
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
48
|
}
|
|
75
49
|
|
|
76
50
|
exports.Task = Task;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var paths = require('../../../../lib/paths.cjs.js');
|
|
6
|
-
var
|
|
6
|
+
var cliCommon = require('@backstage/cli-common');
|
|
7
7
|
|
|
8
8
|
function includesAnyOf(hayStack, ...needles) {
|
|
9
9
|
for (const needle of needles) {
|
|
@@ -29,8 +29,8 @@ var test = async (_opts, cmd) => {
|
|
|
29
29
|
if (!process.env.CI && !args.includes("--coverage") && // explicitly no watching
|
|
30
30
|
!includesAnyOf(args, "--no-watch", "--watch=false", "--watchAll=false") && // already watching
|
|
31
31
|
!includesAnyOf(args, "--watch", "--watchAll")) {
|
|
32
|
-
const isGitRepo = () =>
|
|
33
|
-
const isMercurialRepo = () =>
|
|
32
|
+
const isGitRepo = () => cliCommon.runCheck(["git", "rev-parse", "--is-inside-work-tree"]);
|
|
33
|
+
const isMercurialRepo = () => cliCommon.runCheck(["hg", "--cwd", ".", "root"]);
|
|
34
34
|
if (await isGitRepo() || await isMercurialRepo()) {
|
|
35
35
|
args.push("--watch");
|
|
36
36
|
} else {
|
|
@@ -7,7 +7,6 @@ var jestCli = require('jest-cli');
|
|
|
7
7
|
var path = require('path');
|
|
8
8
|
var cliNode = require('@backstage/cli-node');
|
|
9
9
|
var paths = require('../../../../lib/paths.cjs.js');
|
|
10
|
-
var run = require('../../../../lib/run.cjs.js');
|
|
11
10
|
var cliCommon = require('@backstage/cli-common');
|
|
12
11
|
var SuccessCache = require('../../../../lib/cache/SuccessCache.cjs.js');
|
|
13
12
|
|
|
@@ -22,14 +21,14 @@ async function readPackageTreeHashes(graph) {
|
|
|
22
21
|
...pkg,
|
|
23
22
|
path: path.relative(paths.paths.targetRoot, pkg.dir)
|
|
24
23
|
}));
|
|
25
|
-
const output = await
|
|
24
|
+
const output = await cliCommon.runOutput([
|
|
26
25
|
"git",
|
|
27
26
|
"ls-tree",
|
|
28
|
-
|
|
27
|
+
"--format=%(objectname)=%(path)",
|
|
29
28
|
"HEAD",
|
|
30
29
|
"--",
|
|
31
30
|
...pkgs.map((pkg) => pkg.path)
|
|
32
|
-
);
|
|
31
|
+
]);
|
|
33
32
|
const map = new Map(
|
|
34
33
|
output.trim().split(/\r?\n/).map((line) => {
|
|
35
34
|
const [itemSha, ...itemPathParts] = line.split("=");
|
|
@@ -108,8 +107,8 @@ async function command(opts, cmd) {
|
|
|
108
107
|
}
|
|
109
108
|
let isSingleWatchMode = args.includes("--watch");
|
|
110
109
|
if (!opts.since && !process.env.CI && !hasFlags("--coverage", "--watch", "--watchAll")) {
|
|
111
|
-
const isGitRepo = () =>
|
|
112
|
-
const isMercurialRepo = () =>
|
|
110
|
+
const isGitRepo = () => cliCommon.runCheck(["git", "rev-parse", "--is-inside-work-tree"]);
|
|
111
|
+
const isMercurialRepo = () => cliCommon.runCheck(["hg", "--cwd", ".", "root"]);
|
|
113
112
|
if (await isGitRepo() || await isMercurialRepo()) {
|
|
114
113
|
isSingleWatchMode = true;
|
|
115
114
|
args.push("--watch");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/cli",
|
|
3
|
-
"version": "0.34.6-next.
|
|
3
|
+
"version": "0.34.6-next.1",
|
|
4
4
|
"description": "CLI for developing Backstage plugins and apps",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "cli"
|
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@backstage/catalog-model": "1.7.6",
|
|
51
|
-
"@backstage/cli-common": "0.1.16-next.
|
|
52
|
-
"@backstage/cli-node": "0.2.16-next.
|
|
51
|
+
"@backstage/cli-common": "0.1.16-next.1",
|
|
52
|
+
"@backstage/cli-node": "0.2.16-next.1",
|
|
53
53
|
"@backstage/config": "1.3.6",
|
|
54
54
|
"@backstage/config-loader": "1.10.7-next.0",
|
|
55
55
|
"@backstage/errors": "1.2.7",
|
|
@@ -156,9 +156,9 @@
|
|
|
156
156
|
"@backstage/catalog-client": "1.12.1",
|
|
157
157
|
"@backstage/config": "1.3.6",
|
|
158
158
|
"@backstage/core-app-api": "1.19.3-next.0",
|
|
159
|
-
"@backstage/core-components": "0.18.4-next.
|
|
159
|
+
"@backstage/core-components": "0.18.4-next.1",
|
|
160
160
|
"@backstage/core-plugin-api": "1.12.1-next.0",
|
|
161
|
-
"@backstage/dev-utils": "1.1.18-next.
|
|
161
|
+
"@backstage/dev-utils": "1.1.18-next.1",
|
|
162
162
|
"@backstage/errors": "1.2.7",
|
|
163
163
|
"@backstage/plugin-auth-backend": "0.25.7-next.0",
|
|
164
164
|
"@backstage/plugin-auth-backend-module-guest-provider": "0.2.15-next.0",
|
package/dist/lib/run.cjs.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var child_process = require('child_process');
|
|
4
|
-
var errors = require('./errors.cjs.js');
|
|
5
|
-
var util = require('util');
|
|
6
|
-
var errors$1 = require('@backstage/errors');
|
|
7
|
-
|
|
8
|
-
const execFile = util.promisify(child_process.execFile);
|
|
9
|
-
async function run(name, args = [], options = {}) {
|
|
10
|
-
const { stdoutLogFunc, stderrLogFunc } = options;
|
|
11
|
-
const env = {
|
|
12
|
-
...process.env,
|
|
13
|
-
FORCE_COLOR: "true",
|
|
14
|
-
...options.env ?? {}
|
|
15
|
-
};
|
|
16
|
-
const stdio = [
|
|
17
|
-
"inherit",
|
|
18
|
-
stdoutLogFunc ? "pipe" : "inherit",
|
|
19
|
-
stderrLogFunc ? "pipe" : "inherit"
|
|
20
|
-
];
|
|
21
|
-
const child = child_process.spawn(name, args, {
|
|
22
|
-
stdio,
|
|
23
|
-
shell: true,
|
|
24
|
-
...options,
|
|
25
|
-
env
|
|
26
|
-
});
|
|
27
|
-
if (stdoutLogFunc && child.stdout) {
|
|
28
|
-
child.stdout.on("data", stdoutLogFunc);
|
|
29
|
-
}
|
|
30
|
-
if (stderrLogFunc && child.stderr) {
|
|
31
|
-
child.stderr.on("data", stderrLogFunc);
|
|
32
|
-
}
|
|
33
|
-
await waitForExit(child, name);
|
|
34
|
-
}
|
|
35
|
-
async function runPlain(cmd, ...args) {
|
|
36
|
-
try {
|
|
37
|
-
const { stdout } = await execFile(cmd, args, { shell: true });
|
|
38
|
-
return stdout.trim();
|
|
39
|
-
} catch (error) {
|
|
40
|
-
errors$1.assertError(error);
|
|
41
|
-
if ("stderr" in error) {
|
|
42
|
-
process.stderr.write(error.stderr);
|
|
43
|
-
}
|
|
44
|
-
if (typeof error.code === "number") {
|
|
45
|
-
throw new errors.ExitCodeError(error.code, [cmd, ...args].join(" "));
|
|
46
|
-
}
|
|
47
|
-
throw new errors$1.ForwardedError("Unknown execution error", error);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
async function runCheck(cmd, ...args) {
|
|
51
|
-
try {
|
|
52
|
-
await execFile(cmd, args, { shell: true });
|
|
53
|
-
return true;
|
|
54
|
-
} catch (error) {
|
|
55
|
-
return false;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
async function waitForExit(child, name) {
|
|
59
|
-
if (typeof child.exitCode === "number") {
|
|
60
|
-
if (child.exitCode) {
|
|
61
|
-
throw new errors.ExitCodeError(child.exitCode, name);
|
|
62
|
-
}
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
await new Promise((resolve, reject) => {
|
|
66
|
-
child.once("error", (error) => reject(error));
|
|
67
|
-
child.once("exit", (code) => {
|
|
68
|
-
if (code) {
|
|
69
|
-
reject(new errors.ExitCodeError(code, name));
|
|
70
|
-
} else {
|
|
71
|
-
resolve();
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
exports.execFile = execFile;
|
|
78
|
-
exports.run = run;
|
|
79
|
-
exports.runCheck = runCheck;
|
|
80
|
-
exports.runPlain = runPlain;
|
|
81
|
-
exports.waitForExit = waitForExit;
|
|
82
|
-
//# sourceMappingURL=run.cjs.js.map
|