@jujulego/jill 1.1.14 → 1.1.18
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/base.command.d.ts +8 -0
- package/dist/base.command.js +33 -0
- package/dist/command.d.ts +21 -0
- package/dist/command.js +69 -0
- package/dist/commands/each.command.d.ts +17 -0
- package/dist/commands/each.command.js +115 -0
- package/dist/commands/info.command.d.ts +9 -0
- package/dist/commands/info.command.js +83 -0
- package/dist/commands/list.command.d.ts +22 -0
- package/dist/commands/list.command.js +177 -0
- package/dist/commands/run.command.d.ts +13 -0
- package/dist/commands/run.command.js +60 -0
- package/dist/filters/affected.js +3 -4
- package/dist/filters/filter.js +2 -1
- package/dist/filters/index.js +2 -1
- package/dist/index.d.ts +4 -9
- package/dist/index.js +13 -26
- package/dist/logger.d.ts +6 -23
- package/dist/logger.js +29 -119
- package/dist/main.js +19 -132
- package/dist/myr/commands/kill.command.d.ts +11 -0
- package/dist/myr/commands/kill.command.js +52 -0
- package/dist/myr/commands/list.command.d.ts +18 -0
- package/dist/myr/commands/list.command.js +127 -0
- package/dist/myr/commands/logs.command.d.ts +11 -0
- package/dist/myr/commands/logs.command.js +83 -0
- package/dist/myr/commands/spawn.command.d.ts +11 -0
- package/dist/myr/commands/spawn.command.js +45 -0
- package/dist/myr/commands/stop.command.d.ts +7 -0
- package/dist/myr/commands/stop.command.js +43 -0
- package/dist/myr/myr-client.d.ts +12 -5
- package/dist/myr/myr-client.js +106 -281
- package/dist/myr/myr.command.d.ts +8 -0
- package/dist/myr/myr.command.js +46 -0
- package/dist/myr/myr.process.js +3 -2
- package/dist/myr/watch.command.d.ts +13 -0
- package/dist/myr/watch.command.js +87 -0
- package/dist/pipeline.js +2 -1
- package/dist/plugin.d.ts +11 -0
- package/dist/plugin.js +40 -0
- package/dist/project.command.d.ts +13 -0
- package/dist/project.command.js +58 -0
- package/dist/task-logger.js +6 -5
- package/dist/utils/cli-list.js +2 -1
- package/dist/workspace.command.d.ts +12 -0
- package/dist/workspace.command.js +55 -0
- package/package.json +32 -22
- package/dist/commands/each.d.ts +0 -12
- package/dist/commands/each.js +0 -74
- package/dist/commands/info.d.ts +0 -5
- package/dist/commands/info.js +0 -42
- package/dist/commands/list.d.ts +0 -15
- package/dist/commands/list.js +0 -119
- package/dist/commands/run.d.ts +0 -9
- package/dist/commands/run.js +0 -43
- package/dist/myr/command.d.ts +0 -2
- package/dist/myr/command.js +0 -50
- package/dist/myr/commands/kill.d.ts +0 -5
- package/dist/myr/commands/kill.js +0 -34
- package/dist/myr/commands/list.d.ts +0 -10
- package/dist/myr/commands/list.js +0 -91
- package/dist/myr/commands/spawn.d.ts +0 -7
- package/dist/myr/commands/spawn.js +0 -39
- package/dist/myr/watch.d.ts +0 -8
- package/dist/myr/watch.js +0 -79
- package/dist/utils/deps-tree.d.ts +0 -2
- package/dist/utils/deps-tree.js +0 -51
- package/dist/wrapper.d.ts +0 -9
- package/dist/wrapper.js +0 -38
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Arguments, Awaitable, Builder, Command } from './command';
|
|
2
|
+
export interface BaseArgs {
|
|
3
|
+
verbose: number;
|
|
4
|
+
}
|
|
5
|
+
export declare abstract class BaseCommand<A extends BaseArgs> extends Command<BaseArgs> {
|
|
6
|
+
protected define<T, U>(builder: Builder<T, U>): Builder<T, U & BaseArgs>;
|
|
7
|
+
protected run(args: Arguments<A>): Awaitable<number | void>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BaseCommand = void 0;
|
|
7
|
+
|
|
8
|
+
var _command = require("./command");
|
|
9
|
+
|
|
10
|
+
// Command
|
|
11
|
+
class BaseCommand extends _command.Command {
|
|
12
|
+
// Methods
|
|
13
|
+
define(builder) {
|
|
14
|
+
return y => builder(y).option('verbose', {
|
|
15
|
+
alias: 'v',
|
|
16
|
+
type: 'count',
|
|
17
|
+
description: 'Set verbosity level (1 for verbose, 2 for debug)'
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
run(args) {
|
|
22
|
+
// Setup logger verbosity
|
|
23
|
+
if (args.verbose === 1) {
|
|
24
|
+
this.logger.level = 'verbose';
|
|
25
|
+
} else if (args.verbose >= 2) {
|
|
26
|
+
this.logger.level = 'debug';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
exports.BaseCommand = BaseCommand;
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJhc2UuY29tbWFuZC50cyJdLCJuYW1lcyI6WyJCYXNlQ29tbWFuZCIsIkNvbW1hbmQiLCJkZWZpbmUiLCJidWlsZGVyIiwieSIsIm9wdGlvbiIsImFsaWFzIiwidHlwZSIsImRlc2NyaXB0aW9uIiwicnVuIiwiYXJncyIsInZlcmJvc2UiLCJsb2dnZXIiLCJsZXZlbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQU9BO0FBQ08sTUFBZUEsV0FBZixTQUF1REMsZ0JBQXZELENBQXlFO0FBQzlFO0FBQ1VDLEVBQUFBLE1BQU0sQ0FBT0MsT0FBUCxFQUF5RDtBQUN2RSxXQUFPQyxDQUFDLElBQUlELE9BQU8sQ0FBQ0MsQ0FBRCxDQUFQLENBQ1RDLE1BRFMsQ0FDRixTQURFLEVBQ1M7QUFDakJDLE1BQUFBLEtBQUssRUFBRSxHQURVO0FBRWpCQyxNQUFBQSxJQUFJLEVBQUUsT0FGVztBQUdqQkMsTUFBQUEsV0FBVyxFQUFFO0FBSEksS0FEVCxDQUFaO0FBTUQ7O0FBRVNDLEVBQUFBLEdBQUcsQ0FBQ0MsSUFBRCxFQUErQztBQUMxRDtBQUNBLFFBQUlBLElBQUksQ0FBQ0MsT0FBTCxLQUFpQixDQUFyQixFQUF3QjtBQUN0QixXQUFLQyxNQUFMLENBQVlDLEtBQVosR0FBb0IsU0FBcEI7QUFDRCxLQUZELE1BRU8sSUFBSUgsSUFBSSxDQUFDQyxPQUFMLElBQWdCLENBQXBCLEVBQXVCO0FBQzVCLFdBQUtDLE1BQUwsQ0FBWUMsS0FBWixHQUFvQixPQUFwQjtBQUNEO0FBQ0Y7O0FBbEI2RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3VtZW50cywgQXdhaXRhYmxlLCBCdWlsZGVyLCBDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kJztcblxuLy8gVHlwZXNcbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUFyZ3Mge1xuICB2ZXJib3NlOiBudW1iZXI7XG59XG5cbi8vIENvbW1hbmRcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tbWFuZDxBIGV4dGVuZHMgQmFzZUFyZ3M+IGV4dGVuZHMgQ29tbWFuZDxCYXNlQXJncz4ge1xuICAvLyBNZXRob2RzXG4gIHByb3RlY3RlZCBkZWZpbmU8VCwgVT4oYnVpbGRlcjogQnVpbGRlcjxULCBVPik6IEJ1aWxkZXI8VCwgVSAmIEJhc2VBcmdzPiB7XG4gICAgcmV0dXJuIHkgPT4gYnVpbGRlcih5KVxuICAgICAgLm9wdGlvbigndmVyYm9zZScsIHtcbiAgICAgICAgYWxpYXM6ICd2JyxcbiAgICAgICAgdHlwZTogJ2NvdW50JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdTZXQgdmVyYm9zaXR5IGxldmVsICgxIGZvciB2ZXJib3NlLCAyIGZvciBkZWJ1ZyknLFxuICAgICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcnVuKGFyZ3M6IEFyZ3VtZW50czxBPik6IEF3YWl0YWJsZTxudW1iZXIgfCB2b2lkPiB7XG4gICAgLy8gU2V0dXAgbG9nZ2VyIHZlcmJvc2l0eVxuICAgIGlmIChhcmdzLnZlcmJvc2UgPT09IDEpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmxldmVsID0gJ3ZlcmJvc2UnO1xuICAgIH0gZWxzZSBpZiAoYXJncy52ZXJib3NlID49IDIpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmxldmVsID0gJ2RlYnVnJztcbiAgICB9XG4gIH1cbn0iXSwiZmlsZSI6ImJhc2UuY29tbWFuZC5qcyJ9
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import yargs from 'yargs';
|
|
2
|
+
export declare type Awaitable<T> = T | PromiseLike<T>;
|
|
3
|
+
export declare type Arguments<A> = yargs.Arguments<A> & {
|
|
4
|
+
'--': readonly (string | number)[];
|
|
5
|
+
};
|
|
6
|
+
export declare type Builder<T, A = T> = (yargs: yargs.Argv<T>) => yargs.Argv<A>;
|
|
7
|
+
export declare class Exit extends Error {
|
|
8
|
+
readonly code: number;
|
|
9
|
+
constructor(code?: number);
|
|
10
|
+
}
|
|
11
|
+
export declare abstract class Command<A = unknown> {
|
|
12
|
+
readonly logger: import("winston").Logger;
|
|
13
|
+
readonly spinner: import("ora").Ora;
|
|
14
|
+
protected abstract define<T, U>(builder: Builder<T, U>): Builder<T, U & A>;
|
|
15
|
+
protected abstract run(args: Arguments<A>): Awaitable<number | void>;
|
|
16
|
+
setup<T>(yargs: yargs.Argv<T>): yargs.Argv<T>;
|
|
17
|
+
private _wrapper;
|
|
18
|
+
log(msg: string): void;
|
|
19
|
+
abstract get name(): string | readonly string[];
|
|
20
|
+
abstract get description(): string;
|
|
21
|
+
}
|
package/dist/command.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Exit = exports.Command = void 0;
|
|
7
|
+
|
|
8
|
+
var _jillCore = require("@jujulego/jill-core");
|
|
9
|
+
|
|
10
|
+
var _yargs = _interopRequireDefault(require("yargs"));
|
|
11
|
+
|
|
12
|
+
var _logger = require("./logger");
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
+
|
|
18
|
+
// Exceptions
|
|
19
|
+
class Exit extends Error {
|
|
20
|
+
// Constructor
|
|
21
|
+
constructor(code = 1) {
|
|
22
|
+
super();
|
|
23
|
+
this.code = code;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
} // Command
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
exports.Exit = Exit;
|
|
30
|
+
|
|
31
|
+
class Command {
|
|
32
|
+
constructor() {
|
|
33
|
+
_defineProperty(this, "logger", _jillCore.logger);
|
|
34
|
+
|
|
35
|
+
_defineProperty(this, "spinner", _logger.transport.spinner);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
setup(yargs) {
|
|
39
|
+
yargs.command(this.name, this.description, y => this.define(_ => _)(y), a => this._wrapper(a));
|
|
40
|
+
return yargs;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async _wrapper(args) {
|
|
44
|
+
try {
|
|
45
|
+
const exit = await this.run(args);
|
|
46
|
+
process.exit(exit ?? 0);
|
|
47
|
+
} catch (err) {
|
|
48
|
+
if (err instanceof Exit) {
|
|
49
|
+
process.exit(err.code);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
this.spinner.fail(err.message);
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
log(msg) {
|
|
58
|
+
if (this.spinner.isSpinning) {
|
|
59
|
+
this.spinner.clear();
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
process.stdout.write(msg + '\n');
|
|
63
|
+
} // Properties
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
exports.Command = Command;
|
|
69
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1hbmQudHMiXSwibmFtZXMiOlsiRXhpdCIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJjb2RlIiwiQ29tbWFuZCIsImxvZ2dlciIsInRyYW5zcG9ydCIsInNwaW5uZXIiLCJzZXR1cCIsInlhcmdzIiwiY29tbWFuZCIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsInkiLCJkZWZpbmUiLCJfIiwiYSIsIl93cmFwcGVyIiwiYXJncyIsImV4aXQiLCJydW4iLCJwcm9jZXNzIiwiZXJyIiwiZmFpbCIsIm1lc3NhZ2UiLCJsb2ciLCJtc2ciLCJpc1NwaW5uaW5nIiwiY2xlYXIiLCJzdGRvdXQiLCJ3cml0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUVBOzs7Ozs7QUFPQTtBQUNPLE1BQU1BLElBQU4sU0FBbUJDLEtBQW5CLENBQXlCO0FBQzlCO0FBQ0FDLEVBQUFBLFdBQVcsQ0FBVUMsSUFBSSxHQUFHLENBQWpCLEVBQW9CO0FBQzdCO0FBRDZCLFNBQVZBLElBQVUsR0FBVkEsSUFBVTtBQUU5Qjs7QUFKNkIsQyxDQU9oQzs7Ozs7QUFDTyxNQUFlQyxPQUFmLENBQW9DO0FBQUE7QUFBQSxvQ0FFdkJDLGdCQUZ1Qjs7QUFBQSxxQ0FHdEJDLGtCQUFVQyxPQUhZO0FBQUE7O0FBU3pDQyxFQUFBQSxLQUFLLENBQUlDLEtBQUosRUFBeUM7QUFDNUNBLElBQUFBLEtBQUssQ0FBQ0MsT0FBTixDQUNFLEtBQUtDLElBRFAsRUFFRSxLQUFLQyxXQUZQLEVBR0dDLENBQUQsSUFBTyxLQUFLQyxNQUFMLENBQVlDLENBQUMsSUFBSUEsQ0FBakIsRUFBb0JGLENBQXBCLENBSFQsRUFJR0csQ0FBRCxJQUFPLEtBQUtDLFFBQUwsQ0FBY0QsQ0FBZCxDQUpUO0FBT0EsV0FBT1AsS0FBUDtBQUNEOztBQUVxQixRQUFSUSxRQUFRLENBQUNDLElBQUQsRUFBb0M7QUFDeEQsUUFBSTtBQUNGLFlBQU1DLElBQUksR0FBRyxNQUFNLEtBQUtDLEdBQUwsQ0FBU0YsSUFBVCxDQUFuQjtBQUNBRyxNQUFBQSxPQUFPLENBQUNGLElBQVIsQ0FBYUEsSUFBSSxJQUFJLENBQXJCO0FBQ0QsS0FIRCxDQUdFLE9BQU9HLEdBQVAsRUFBWTtBQUNaLFVBQUlBLEdBQUcsWUFBWXRCLElBQW5CLEVBQXlCO0FBQ3ZCcUIsUUFBQUEsT0FBTyxDQUFDRixJQUFSLENBQWFHLEdBQUcsQ0FBQ25CLElBQWpCO0FBQ0Q7O0FBRUQsV0FBS0ksT0FBTCxDQUFhZ0IsSUFBYixDQUFrQkQsR0FBRyxDQUFDRSxPQUF0QjtBQUNBSCxNQUFBQSxPQUFPLENBQUNGLElBQVIsQ0FBYSxDQUFiO0FBQ0Q7QUFDRjs7QUFFRE0sRUFBQUEsR0FBRyxDQUFDQyxHQUFELEVBQW9CO0FBQ3JCLFFBQUksS0FBS25CLE9BQUwsQ0FBYW9CLFVBQWpCLEVBQTZCO0FBQzNCLFdBQUtwQixPQUFMLENBQWFxQixLQUFiO0FBQ0Q7O0FBRURQLElBQUFBLE9BQU8sQ0FBQ1EsTUFBUixDQUFlQyxLQUFmLENBQXFCSixHQUFHLEdBQUcsSUFBM0I7QUFDRCxHQXhDd0MsQ0EwQ3pDOzs7QUExQ3lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnQGp1anVsZWdvL2ppbGwtY29yZSc7XG5pbXBvcnQgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuXG5pbXBvcnQgeyB0cmFuc3BvcnQgfSBmcm9tICcuL2xvZ2dlcic7XG5cbi8vIEV4cG9ydFxuZXhwb3J0IHR5cGUgQXdhaXRhYmxlPFQ+ID0gVCB8IFByb21pc2VMaWtlPFQ+O1xuZXhwb3J0IHR5cGUgQXJndW1lbnRzPEE+ID0geWFyZ3MuQXJndW1lbnRzPEE+ICYgeyAnLS0nOiByZWFkb25seSAoc3RyaW5nIHwgbnVtYmVyKVtdIH07XG5leHBvcnQgdHlwZSBCdWlsZGVyPFQsIEEgPSBUPiA9ICh5YXJnczogeWFyZ3MuQXJndjxUPikgPT4geWFyZ3MuQXJndjxBPjtcblxuLy8gRXhjZXB0aW9uc1xuZXhwb3J0IGNsYXNzIEV4aXQgZXh0ZW5kcyBFcnJvciB7XG4gIC8vIENvbnN0cnVjdG9yXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvZGUgPSAxKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuXG4vLyBDb21tYW5kXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29tbWFuZDxBID0gdW5rbm93bj4ge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHJlYWRvbmx5IGxvZ2dlciA9IGxvZ2dlcjtcbiAgcmVhZG9ubHkgc3Bpbm5lciA9IHRyYW5zcG9ydC5zcGlubmVyO1xuXG4gIC8vIE1ldGhvZHNcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGRlZmluZTxULCBVPihidWlsZGVyOiBCdWlsZGVyPFQsIFU+KTogQnVpbGRlcjxULCBVICYgQT47XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBydW4oYXJnczogQXJndW1lbnRzPEE+KTogQXdhaXRhYmxlPG51bWJlciB8IHZvaWQ+O1xuXG4gIHNldHVwPFQ+KHlhcmdzOiB5YXJncy5Bcmd2PFQ+KTogeWFyZ3MuQXJndjxUPiB7XG4gICAgeWFyZ3MuY29tbWFuZDxBPihcbiAgICAgIHRoaXMubmFtZSxcbiAgICAgIHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICAoeSkgPT4gdGhpcy5kZWZpbmUoXyA9PiBfKSh5KSxcbiAgICAgIChhKSA9PiB0aGlzLl93cmFwcGVyKGEgYXMgQXJndW1lbnRzPEE+KVxuICAgICk7XG5cbiAgICByZXR1cm4geWFyZ3M7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF93cmFwcGVyKGFyZ3M6IEFyZ3VtZW50czxBPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBleGl0ID0gYXdhaXQgdGhpcy5ydW4oYXJncyk7XG4gICAgICBwcm9jZXNzLmV4aXQoZXhpdCA/PyAwKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFeGl0KSB7XG4gICAgICAgIHByb2Nlc3MuZXhpdChlcnIuY29kZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3Bpbm5lci5mYWlsKGVyci5tZXNzYWdlKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH1cblxuICBsb2cobXNnOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zcGlubmVyLmlzU3Bpbm5pbmcpIHtcbiAgICAgIHRoaXMuc3Bpbm5lci5jbGVhcigpO1xuICAgIH1cblxuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKG1zZyArICdcXG4nKTtcbiAgfVxuXG4gIC8vIFByb3BlcnRpZXNcbiAgYWJzdHJhY3QgZ2V0IG5hbWUoKTogc3RyaW5nIHwgcmVhZG9ubHkgc3RyaW5nW107XG4gIGFic3RyYWN0IGdldCBkZXNjcmlwdGlvbigpOiBzdHJpbmc7XG59Il0sImZpbGUiOiJjb21tYW5kLmpzIn0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { WorkspaceDepsMode } from '@jujulego/jill-core';
|
|
2
|
+
import { Arguments, Builder } from '../command';
|
|
3
|
+
import { ProjectArgs, ProjectCommand } from '../project.command';
|
|
4
|
+
export interface EachArgs extends ProjectArgs {
|
|
5
|
+
script: string;
|
|
6
|
+
'deps-mode': WorkspaceDepsMode;
|
|
7
|
+
private: boolean | undefined;
|
|
8
|
+
affected: string | undefined;
|
|
9
|
+
'affected-rev-sort': string | undefined;
|
|
10
|
+
'affected-rev-fallback': string;
|
|
11
|
+
}
|
|
12
|
+
export declare class EachCommand extends ProjectCommand<EachArgs> {
|
|
13
|
+
readonly name = "each <script>";
|
|
14
|
+
readonly description = "Run script on selected workspaces";
|
|
15
|
+
protected define<T, U>(builder: Builder<T, U>): Builder<T, U & EachArgs>;
|
|
16
|
+
protected run(args: Arguments<EachArgs>): Promise<number>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.EachCommand = void 0;
|
|
7
|
+
|
|
8
|
+
var _jillCore = require("@jujulego/jill-core");
|
|
9
|
+
|
|
10
|
+
var _filters = require("../filters");
|
|
11
|
+
|
|
12
|
+
var _pipeline = require("../pipeline");
|
|
13
|
+
|
|
14
|
+
var _taskLogger = require("../task-logger");
|
|
15
|
+
|
|
16
|
+
var _project = require("../project.command");
|
|
17
|
+
|
|
18
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
19
|
+
|
|
20
|
+
// Command
|
|
21
|
+
class EachCommand extends _project.ProjectCommand {
|
|
22
|
+
constructor(...args) {
|
|
23
|
+
super(...args);
|
|
24
|
+
|
|
25
|
+
_defineProperty(this, "name", 'each <script>');
|
|
26
|
+
|
|
27
|
+
_defineProperty(this, "description", 'Run script on selected workspaces');
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Methods
|
|
31
|
+
define(builder) {
|
|
32
|
+
return super.define(y => builder(y).positional('script', {
|
|
33
|
+
type: 'string',
|
|
34
|
+
demandOption: true
|
|
35
|
+
}).option('deps-mode', {
|
|
36
|
+
choice: ['all', 'prod', 'none'],
|
|
37
|
+
default: 'all',
|
|
38
|
+
desc: 'Dependency selection mode:\n' + ' - all = dependencies AND devDependencies\n' + ' - prod = dependencies\n' + ' - none = nothing'
|
|
39
|
+
}).option('private', {
|
|
40
|
+
type: 'boolean',
|
|
41
|
+
group: 'Filters:',
|
|
42
|
+
desc: 'Print only private workspaces'
|
|
43
|
+
}).option('affected', {
|
|
44
|
+
alias: 'a',
|
|
45
|
+
type: 'string',
|
|
46
|
+
coerce: rev => rev === '' ? 'master' : rev,
|
|
47
|
+
group: 'Affected:',
|
|
48
|
+
desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\n' + 'Replaces %name by workspace name.'
|
|
49
|
+
}).option('affected-rev-sort', {
|
|
50
|
+
type: 'string',
|
|
51
|
+
group: 'Affected:',
|
|
52
|
+
desc: 'Sort applied to git tag / git branch command'
|
|
53
|
+
}).option('affected-rev-fallback', {
|
|
54
|
+
type: 'string',
|
|
55
|
+
default: 'master',
|
|
56
|
+
group: 'Affected:',
|
|
57
|
+
desc: 'Fallback revision, used if no revision matching the given format is found'
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
async run(args) {
|
|
62
|
+
await super.run(args); // Setup pipeline
|
|
63
|
+
|
|
64
|
+
const pipeline = new _pipeline.Pipeline();
|
|
65
|
+
pipeline.add(_filters.Filter.scripts([args.script]));
|
|
66
|
+
|
|
67
|
+
if (args.private !== undefined) {
|
|
68
|
+
pipeline.add(_filters.Filter.privateWorkspace(args.private));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (args.affected !== undefined) {
|
|
72
|
+
pipeline.add(new _filters.AffectedFilter(args.affected, args['affected-rev-fallback'], args['affected-rev-sort']));
|
|
73
|
+
} // Filter
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
const workspaces = [];
|
|
77
|
+
|
|
78
|
+
for await (const wks of pipeline.filter(this.project.workspaces())) {
|
|
79
|
+
workspaces.push(wks);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (workspaces.length === 0) {
|
|
83
|
+
this.spinner.fail('No workspace found !');
|
|
84
|
+
return 1;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
this.spinner.stop();
|
|
88
|
+
this.logger.verbose(`Will run ${args.script} in ${workspaces.map(wks => wks.name).join(', ')}`); // Run tasks
|
|
89
|
+
|
|
90
|
+
const set = new _jillCore.TaskSet();
|
|
91
|
+
const tasks = [];
|
|
92
|
+
|
|
93
|
+
for (const wks of workspaces) {
|
|
94
|
+
const task = await wks.run(args.script, args['--']?.map(arg => arg.toString()), {
|
|
95
|
+
buildDeps: args['deps-mode']
|
|
96
|
+
});
|
|
97
|
+
tasks.push(task);
|
|
98
|
+
set.add(task);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const tlogger = new _taskLogger.TaskLogger();
|
|
102
|
+
tlogger.on('spin-multiple', count => `Working in ${count} packages ...`);
|
|
103
|
+
tlogger.on('spin-simple', tsk => tasks.includes(tsk) ? `Running ${args.script} in ${tsk.context.workspace?.name} ...` : `Building ${tsk.context.workspace?.name} ...`);
|
|
104
|
+
tlogger.on('fail', tsk => tasks.includes(tsk) ? `${tsk.context.workspace?.name} ${args.script} failed` : `Failed to build ${tsk.context.workspace?.name}`);
|
|
105
|
+
tlogger.on('succeed', tsk => tasks.includes(tsk) ? `${tsk.context.workspace?.name} ${args.script} done` : `${tsk.context.workspace?.name} built`);
|
|
106
|
+
tlogger.connect(set);
|
|
107
|
+
set.start();
|
|
108
|
+
const [result] = await set.waitFor('finished');
|
|
109
|
+
return result.failed === 0 ? 0 : 1;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
exports.EachCommand = EachCommand;
|
|
115
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1hbmRzL2VhY2guY29tbWFuZC50cyJdLCJuYW1lcyI6WyJFYWNoQ29tbWFuZCIsIlByb2plY3RDb21tYW5kIiwiZGVmaW5lIiwiYnVpbGRlciIsInkiLCJwb3NpdGlvbmFsIiwidHlwZSIsImRlbWFuZE9wdGlvbiIsIm9wdGlvbiIsImNob2ljZSIsImRlZmF1bHQiLCJkZXNjIiwiZ3JvdXAiLCJhbGlhcyIsImNvZXJjZSIsInJldiIsInJ1biIsImFyZ3MiLCJwaXBlbGluZSIsIlBpcGVsaW5lIiwiYWRkIiwiRmlsdGVyIiwic2NyaXB0cyIsInNjcmlwdCIsInByaXZhdGUiLCJ1bmRlZmluZWQiLCJwcml2YXRlV29ya3NwYWNlIiwiYWZmZWN0ZWQiLCJBZmZlY3RlZEZpbHRlciIsIndvcmtzcGFjZXMiLCJ3a3MiLCJmaWx0ZXIiLCJwcm9qZWN0IiwicHVzaCIsImxlbmd0aCIsInNwaW5uZXIiLCJmYWlsIiwic3RvcCIsImxvZ2dlciIsInZlcmJvc2UiLCJtYXAiLCJuYW1lIiwiam9pbiIsInNldCIsIlRhc2tTZXQiLCJ0YXNrcyIsInRhc2siLCJhcmciLCJ0b1N0cmluZyIsImJ1aWxkRGVwcyIsInRsb2dnZXIiLCJUYXNrTG9nZ2VyIiwib24iLCJjb3VudCIsInRzayIsImluY2x1ZGVzIiwiY29udGV4dCIsIndvcmtzcGFjZSIsImNvbm5lY3QiLCJzdGFydCIsInJlc3VsdCIsIndhaXRGb3IiLCJmYWlsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQWFBO0FBQ08sTUFBTUEsV0FBTixTQUEwQkMsdUJBQTFCLENBQW1EO0FBQUE7QUFBQTs7QUFBQSxrQ0FFeEMsZUFGd0M7O0FBQUEseUNBR2pDLG1DQUhpQztBQUFBOztBQUt4RDtBQUNVQyxFQUFBQSxNQUFNLENBQU9DLE9BQVAsRUFBeUQ7QUFDdkUsV0FBTyxNQUFNRCxNQUFOLENBQWFFLENBQUMsSUFBSUQsT0FBTyxDQUFDQyxDQUFELENBQVAs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RCxJQUFTVCxLQUFLLENBQUNVLFFBQU4sQ0FBZUQsR0FBZixJQUF1QixHQUFFQSxHQUFHLENBQUNFLE9BQUosQ0FBWUMsU0FBWixFQUF1QmhCLElBQUssSUFBR3hCLElBQUksQ0FBQ00sTUFBTyxTQUFwRSxHQUFnRixtQkFBa0IrQixHQUFHLENBQUNFLE9BQUosQ0FBWUMsU0FBWixFQUF1QmhCLElBQUssRUFBMUo7QUFDQVMsSUFBQUEsT0FBTyxDQUFDRSxFQUFSLENBQVcsU0FBWCxFQUF1QkUsR0FBRCxJQUFTVCxLQUFLLENBQUNVLFFBQU4sQ0FBZUQsR0FBZixJQUF1QixHQUFFQSxHQUFHLENBQUNFLE9BQUosQ0FBWUMsU0FBWixFQUF1QmhCLElBQUssSUFBR3hCLElBQUksQ0FBQ00sTUFBTyxPQUFwRSxHQUE4RSxHQUFFK0IsR0FBRyxDQUFDRSxPQUFKLENBQVlDLFNBQVosRUFBdUJoQixJQUFLLFFBQTNJO0FBQ0FTLElBQUFBLE9BQU8sQ0FBQ1EsT0FBUixDQUFnQmYsR0FBaEI7QUFFQUEsSUFBQUEsR0FBRyxDQUFDZ0IsS0FBSjtBQUNBLFVBQU0sQ0FBQ0MsTUFBRCxJQUFXLE1BQU1qQixHQUFHLENBQUNrQixPQUFKLENBQVksVUFBWixDQUF2QjtBQUNBLFdBQU9ELE1BQU0sQ0FBQ0UsTUFBUCxLQUFrQixDQUFsQixHQUFzQixDQUF0QixHQUEwQixDQUFqQztBQUNEOztBQXJHdUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXNrLCBUYXNrU2V0LCBXb3Jrc3BhY2UsIFdvcmtzcGFjZURlcHNNb2RlIH0gZnJvbSAnQGp1anVsZWdvL2ppbGwtY29yZSc7XG5cbmltcG9ydCB7IEFyZ3VtZW50cywgQnVpbGRlciB9IGZyb20gJy4uL2NvbW1hbmQnO1xuaW1wb3J0IHsgQWZmZWN0ZWRGaWx0ZXIsIEZpbHRlciB9IGZyb20gJy4uL2ZpbHRlcnMnO1xuaW1wb3J0IHsgUGlwZWxpbmUgfSBmcm9tICcuLi9waXBlbGluZSc7XG5pbXBvcnQgeyBUYXNrTG9nZ2VyIH0gZnJvbSAnLi4vdGFzay1sb2dnZXInO1xuaW1wb3J0IHsgUHJvamVjdEFyZ3MsIFByb2plY3RDb21tYW5kIH0gZnJvbSAnLi4vcHJvamVjdC5jb21tYW5kJztcblxuLy8gVHlwZXNcbmV4cG9ydCBpbnRlcmZhY2UgRWFjaEFyZ3MgZXh0ZW5kcyBQcm9qZWN0QXJncyB7XG4gIHNjcmlwdDogc3RyaW5nO1xuICAnZGVwcy1tb2RlJzogV29ya3NwYWNlRGVwc01vZGU7XG5cbiAgcHJpdmF0ZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgYWZmZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgJ2FmZmVjdGVkLXJldi1zb3J0Jzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAnYWZmZWN0ZWQtcmV2LWZhbGxiYWNrJzogc3RyaW5nO1xufVxuXG4vLyBDb21tYW5kXG5leHBvcnQgY2xhc3MgRWFjaENvbW1hbmQgZXh0ZW5kcyBQcm9qZWN0Q29tbWFuZDxFYWNoQXJncz4ge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHJlYWRvbmx5IG5hbWUgPSAnZWFjaCA8c2NyaXB0Pic7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gJ1J1biBzY3JpcHQgb24gc2VsZWN0ZWQgd29ya3NwYWNlcyc7XG5cbiAgLy8gTWV0aG9kc1xuICBwcm90ZWN0ZWQgZGVmaW5lPFQsIFU+KGJ1aWxkZXI6IEJ1aWxkZXI8VCwgVT4pOiBCdWlsZGVyPFQsIFUgJiBFYWNoQXJncz4ge1xuICAgIHJldHVybiBzdXBlci5kZWZpbmUoeSA9PiBidWlsZGVyKHkpXG4gICAgICAucG9zaXRpb25hbCgnc2NyaXB0JywgeyB0eXBlOiAnc3RyaW5nJywgZGVtYW5kT3B0aW9uOiB0cnVlIH0pXG4gICAgICAub3B0aW9uKCdkZXBzLW1vZGUnLCB7XG4gICAgICAgIGNob2ljZTogWydhbGwnLCAncHJvZCcsICdub25lJ10sXG4gICAgICAgIGRlZmF1bHQ6ICdhbGwnIGFzIFdvcmtzcGFjZURlcHNNb2RlLFxuICAgICAgICBkZXNjOiAnRGVwZW5kZW5jeSBzZWxlY3Rpb24gbW9kZTpcXG4nICtcbiAgICAgICAgICAnIC0gYWxsID0gZGVwZW5kZW5jaWVzIEFORCBkZXZEZXBlbmRlbmNpZXNcXG4nICtcbiAgICAgICAgICAnIC0gcHJvZCA9IGRlcGVuZGVuY2llc1xcbicgK1xuICAgICAgICAgICcgLSBub25lID0gbm90aGluZydcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdwcml2YXRlJywge1xuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGdyb3VwOiAnRmlsdGVyczonLFxuICAgICAgICBkZXNjOiAnUHJpbnQgb25seSBwcml2YXRlIHdvcmtzcGFjZXMnLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb24oJ2FmZmVjdGVkJywge1xuICAgICAgICBhbGlhczogJ2EnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgY29lcmNlOiAocmV2OiBzdHJpbmcpID0+IHJldiA9PT0gJycgPyAnbWFzdGVyJyA6IHJldixcbiAgICAgICAgZ3JvdXA6ICdBZmZlY3RlZDonLFxuICAgICAgICBkZXNjOiAnUHJpbnQgb25seSBhZmZlY3RlZCB3b3Jrc3BhY2VzIHRvd2FyZHMgZ2l2ZW4gZ2l0IHJldmlzaW9uLiBJZiBubyByZXZpc2lvbiBpcyBnaXZlbiwgaXQgd2lsbCBjaGVjayB0b3dhcmRzIG1hc3Rlci5cXG4nICtcbiAgICAgICAgICAnUmVwbGFjZXMgJW5hbWUgYnkgd29ya3NwYWNlIG5hbWUuJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdhZmZlY3RlZC1yZXYtc29ydCcsIHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGdyb3VwOiAnQWZmZWN0ZWQ6JyxcbiAgICAgICAgZGVzYzogJ1NvcnQgYXBwbGllZCB0byBnaXQgdGFnIC8gZ2l0IGJyYW5jaCBjb21tYW5kJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdhZmZlY3RlZC1yZXYtZmFsbGJhY2snLCB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZWZhdWx0OiAnbWFzdGVyJyxcbiAgICAgICAgZ3JvdXA6ICdBZmZlY3RlZDonLFxuICAgICAgICBkZXNjOiAnRmFsbGJhY2sgcmV2aXNpb24sIHVzZWQgaWYgbm8gcmV2aXNpb24gbWF0Y2hpbmcgdGhlIGdpdmVuIGZvcm1hdCBpcyBmb3VuZCcsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcnVuKGFyZ3M6IEFyZ3VtZW50czxFYWNoQXJncz4pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGF3YWl0IHN1cGVyLnJ1bihhcmdzKTtcblxuICAgIC8vIFNldHVwIHBpcGVsaW5lXG4gICAgY29uc3QgcGlwZWxpbmUgPSBuZXcgUGlwZWxpbmUoKTtcbiAgICBwaXBlbGluZS5hZGQoRmlsdGVyLnNjcmlwdHMoW2FyZ3Muc2NyaXB0XSkpO1xuXG4gICAgaWYgKGFyZ3MucHJpdmF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBwaXBlbGluZS5hZGQoRmlsdGVyLnByaXZhdGVXb3Jrc3BhY2UoYXJncy5wcml2YXRlKSk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3MuYWZmZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGlwZWxpbmUuYWRkKG5ldyBBZmZlY3RlZEZpbHRlcihcbiAgICAgICAgYXJncy5hZmZlY3RlZCxcbiAgICAgICAgYXJnc1snYWZmZWN0ZWQtcmV2LWZhbGxiYWNrJ10sXG4gICAgICAgIGFyZ3NbJ2FmZmVjdGVkLXJldi1zb3J0J11cbiAgICAgICkpO1xuICAgIH1cblxuICAgIC8vIEZpbHRlclxuICAgIGNvbnN0IHdvcmtzcGFjZXM6IFdvcmtzcGFjZVtdID0gW107XG5cbiAgICBmb3IgYXdhaXQgKGNvbnN0IHdrcyBvZiBwaXBlbGluZS5maWx0ZXIodGhpcy5wcm9qZWN0LndvcmtzcGFjZXMoKSkpIHtcbiAgICAgIHdvcmtzcGFjZXMucHVzaCh3a3MpO1xuICAgIH1cblxuICAgIGlmICh3b3Jrc3BhY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zcGlubmVyLmZhaWwoJ05vIHdvcmtzcGFjZSBmb3VuZCAhJyk7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICB0aGlzLnNwaW5uZXIuc3RvcCgpO1xuICAgIHRoaXMubG9nZ2VyLnZlcmJvc2UoYFdpbGwgcnVuICR7YXJncy5zY3JpcHR9IGluICR7d29ya3NwYWNlcy5tYXAod2tzID0+IHdrcy5uYW1lKS5qb2luKCcsICcpfWApO1xuXG4gICAgLy8gUnVuIHRhc2tzXG4gICAgY29uc3Qgc2V0ID0gbmV3IFRhc2tTZXQoKTtcbiAgICBjb25zdCB0YXNrczogVGFza1tdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IHdrcyBvZiB3b3Jrc3BhY2VzKSB7XG4gICAgICBjb25zdCB0YXNrID0gYXdhaXQgd2tzLnJ1bihhcmdzLnNjcmlwdCwgYXJnc1snLS0nXT8ubWFwKGFyZyA9PiBhcmcudG9TdHJpbmcoKSksIHtcbiAgICAgICAgYnVpbGREZXBzOiBhcmdzWydkZXBzLW1vZGUnXVxuICAgICAgfSk7XG5cbiAgICAgIHRhc2tzLnB1c2godGFzayk7XG4gICAgICBzZXQuYWRkKHRhc2spO1xuICAgIH1cblxuICAgIGNvbnN0IHRsb2dnZXIgPSBuZXcgVGFza0xvZ2dlcigpO1xuICAgIHRsb2dnZXIub24oJ3NwaW4tbXVsdGlwbGUnLCAoY291bnQpID0+IGBXb3JraW5nIGluICR7Y291bnR9IHBhY2thZ2VzIC4uLmApO1xuICAgIHRsb2dnZXIub24oJ3NwaW4tc2ltcGxlJywgKHRzaykgPT4gdGFza3MuaW5jbHVkZXModHNrKSA/IGBSdW5uaW5nICR7YXJncy5zY3JpcHR9IGluICR7dHNrLmNvbnRleHQud29ya3NwYWNlPy5uYW1lfSAuLi5gIDogYEJ1aWxkaW5nICR7dHNrLmNvbnRleHQud29ya3NwYWNlPy5uYW1lfSAuLi5gKTtcbiAgICB0bG9nZ2VyLm9uKCdmYWlsJywgKHRzaykgPT4gdGFza3MuaW5jbHVkZXModHNrKSA/IGAke3Rzay5jb250ZXh0LndvcmtzcGFjZT8ubmFtZX0gJHthcmdzLnNjcmlwdH0gZmFpbGVkYCA6IGBGYWlsZWQgdG8gYnVpbGQgJHt0c2suY29udGV4dC53b3Jrc3BhY2U/Lm5hbWV9YCk7XG4gICAgdGxvZ2dlci5vbignc3VjY2VlZCcsICh0c2spID0+IHRhc2tzLmluY2x1ZGVzKHRzaykgPyBgJHt0c2suY29udGV4dC53b3Jrc3BhY2U/Lm5hbWV9ICR7YXJncy5zY3JpcHR9IGRvbmVgIDogYCR7dHNrLmNvbnRleHQud29ya3NwYWNlPy5uYW1lfSBidWlsdGApO1xuICAgIHRsb2dnZXIuY29ubmVjdChzZXQpO1xuXG4gICAgc2V0LnN0YXJ0KCk7XG4gICAgY29uc3QgW3Jlc3VsdF0gPSBhd2FpdCBzZXQud2FpdEZvcignZmluaXNoZWQnKTtcbiAgICByZXR1cm4gcmVzdWx0LmZhaWxlZCA9PT0gMCA/IDAgOiAxO1xuICB9XG59Il0sImZpbGUiOiJjb21tYW5kcy9lYWNoLmNvbW1hbmQuanMifQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Arguments } from '../command';
|
|
2
|
+
import { WorkspaceArgs, WorkspaceCommand } from '../workspace.command';
|
|
3
|
+
export declare class InfoCommand extends WorkspaceCommand {
|
|
4
|
+
readonly name = "info";
|
|
5
|
+
readonly description = "Print workspace data";
|
|
6
|
+
protected run(args: Arguments<WorkspaceArgs>): Promise<number | void>;
|
|
7
|
+
private printDepsTree;
|
|
8
|
+
private printTree;
|
|
9
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.InfoCommand = void 0;
|
|
7
|
+
|
|
8
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
9
|
+
|
|
10
|
+
var _path = _interopRequireDefault(require("path"));
|
|
11
|
+
|
|
12
|
+
var _workspace = require("../workspace.command");
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
+
|
|
18
|
+
// Command
|
|
19
|
+
class InfoCommand extends _workspace.WorkspaceCommand {
|
|
20
|
+
constructor(...args) {
|
|
21
|
+
super(...args);
|
|
22
|
+
|
|
23
|
+
_defineProperty(this, "name", 'info');
|
|
24
|
+
|
|
25
|
+
_defineProperty(this, "description", 'Print workspace data');
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Methods
|
|
29
|
+
async run(args) {
|
|
30
|
+
await super.run(args);
|
|
31
|
+
this.spinner.stop(); // Print data
|
|
32
|
+
|
|
33
|
+
this.log((0, _chalk.default)`Workspace {bold ${this.workspace.name}}:`);
|
|
34
|
+
this.log((0, _chalk.default)`{bold Version:} ${this.workspace.manifest.version || _chalk.default.grey('unset')}`);
|
|
35
|
+
this.log((0, _chalk.default)`{bold Directory:} ${_path.default.relative(process.cwd(), this.workspace.cwd) || '.'}`);
|
|
36
|
+
this.log('');
|
|
37
|
+
await this.printDepsTree();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
async printDepsTree() {
|
|
41
|
+
this.log((0, _chalk.default)`{bold Dependencies:}`);
|
|
42
|
+
const printed = new Set([this.workspace.name]);
|
|
43
|
+
await this.printTree(this.workspace, '', false, printed);
|
|
44
|
+
|
|
45
|
+
if (printed.size === 1) {
|
|
46
|
+
this.log(_chalk.default.grey(` No dependencies for ${this.workspace.name}`));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async printTree(wks, level, dev, printed) {
|
|
51
|
+
const workspaces = [];
|
|
52
|
+
|
|
53
|
+
for await (const dep of wks.dependencies()) {
|
|
54
|
+
workspaces.push([dep, dev]);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
for await (const dep of wks.devDependencies()) {
|
|
58
|
+
workspaces.push([dep, true]);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
for (let i = 0; i < workspaces.length; ++i) {
|
|
62
|
+
const [dep, isDev] = workspaces[i];
|
|
63
|
+
const isPrinted = printed.has(dep.cwd);
|
|
64
|
+
const isLast = i === workspaces.length - 1; // Format
|
|
65
|
+
|
|
66
|
+
let name = dep.name;
|
|
67
|
+
if (dep.version) name = (0, _chalk.default)`${name}{grey @${dep.version}}`;
|
|
68
|
+
if (isDev) name = _chalk.default.blue(`${name} (dev)`);
|
|
69
|
+
if (isPrinted) name = _chalk.default.italic(name);
|
|
70
|
+
const branchFmt = dev ? _chalk.default.blue : s => s;
|
|
71
|
+
this.log(`${level}${branchFmt(`${isLast ? '└' : '├'}─ `)}${name}`); // Print deps of dep
|
|
72
|
+
|
|
73
|
+
if (!isPrinted) {
|
|
74
|
+
printed.add(dep.cwd);
|
|
75
|
+
await this.printTree(dep, level + (isLast ? ' ' : branchFmt('│ ')), isDev, printed);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
exports.InfoCommand = InfoCommand;
|
|
83
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1hbmRzL2luZm8uY29tbWFuZC50cyJdLCJuYW1lcyI6WyJJbmZvQ29tbWFuZCIsIldvcmtzcGFjZUNvbW1hbmQiLCJydW4iLCJhcmdzIiwic3Bpbm5lciIsInN0b3AiLCJsb2ciLCJ3b3Jrc3BhY2UiLCJuYW1lIiwibWFuaWZlc3QiLCJ2ZXJzaW9uIiwiY2hhbGsiLCJncmV5IiwicGF0aCIsInJlbGF0aXZlIiwicHJvY2VzcyIsImN3ZCIsInByaW50RGVwc1RyZWUiLCJwcmludGVkIiwiU2V0IiwicHJpbnRUcmVlIiwic2l6ZSIsIndrcyIsImxldmVsIiwiZGV2Iiwid29ya3NwYWNlcyIsImRlcCIsImRlcGVuZGVuY2llcyIsInB1c2giLCJkZXZEZXBlbmRlbmNpZXMiLCJpIiwibGVuZ3RoIiwiaXNEZXYiLCJpc1ByaW50ZWQiLCJoYXMiLCJpc0xhc3QiLCJibHVlIiwiaXRhbGljIiwiYnJhbmNoRm10IiwicyIsImFkZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOztBQUNBOztBQUdBOzs7Ozs7QUFFQTtBQUNPLE1BQU1BLFdBQU4sU0FBMEJDLDJCQUExQixDQUEyQztBQUFBO0FBQUE7O0FBQUEsa0NBRWhDLE1BRmdDOztBQUFBLHlDQUd6QixzQkFIeUI7QUFBQTs7QUFLaEQ7QUFDbUIsUUFBSEMsR0FBRyxDQUFDQyxJQUFELEVBQXlEO0FBQzFFLFVBQU0sTUFBTUQsR0FBTixDQUFVQyxJQUFWLENBQU47QUFDQSxTQUFLQyxPQUFMLENBQWFDLElBQWIsR0FGMEUsQ0FJMUU7O0FBQ0EsU0FBS0MsR0FBTCxDQUFTLG1CQUFNLG1CQUFrQixLQUFLQyxTQUFMLENBQWVDLElBQUssSUFBckQ7QUFDQSxTQUFLRixHQUFMLENBQVMsbUJBQU0scUJBQW9CLEtBQUtDLFNBQUwsQ0FBZUUsUUFBZixDQUF3QkMsT0FBeEIsSUFBbUNDLGVBQU1DLElBQU4sQ0FBVyxPQUFYLENBQW9CLEVBQTFGO0FBQ0EsU0FBS04sR0FBTCxDQUFTLG1CQUFNLHFCQUFvQk8sY0FBS0MsUUFBTCxDQUFjQyxPQUFPLENBQUNDLEdBQVIsRUFBZCxFQUE2QixLQUFLVCxTQUFMLENBQWVTLEdBQTVDLEtBQW9ELEdBQUksRUFBM0Y7QUFDQSxTQUFLVixHQUFMLENBQVMsRUFBVDtBQUNBLFVBQU0sS0FBS1csYUFBTCxFQUFOO0FBQ0Q7O0FBRTBCLFFBQWJBLGFBQWEsR0FBa0I7QUFDM0MsU0FBS1gsR0FBTCxDQUFTLG1CQUFNLHNCQUFmO0FBQ0EsVUFBTVksT0FBTyxHQUFHLElBQUlDLEdBQUosQ0FBUSxDQUFDLEtBQUtaLFNBQUwsQ0FBZUMsSUFBaEIsQ0FBUixDQUFoQjtBQUVBLFVBQU0sS0FBS1ksU0FBTCxDQUFlLEtBQUtiLFNBQXBCLEVBQStCLEVBQS9CLEVBQW1DLEtBQW5DLEVBQTBDVyxPQUExQyxDQUFOOztBQUVBLFFBQUlBLE9BQU8sQ0FBQ0csSUFBUixLQUFpQixDQUFyQixFQUF3QjtBQUN0QixXQUFLZixHQUFMLENBQVNLLGVBQU1DLElBQU4sQ0FBWSwwQkFBeUIsS0FBS0wsU0FBTCxDQUFlQyxJQUFLLEVBQXpELENBQVQ7QUFDRDtBQUNGOztBQUVzQixRQUFUWSxTQUFTLENBQUNFLEdBQUQsRUFBaUJDLEtBQWpCLEVBQWdDQyxHQUFoQyxFQUE4Q04sT0FBOUMsRUFBb0U7QUFDekYsVUFBTU8sVUFBa0MsR0FBRyxFQUEzQzs7QUFFQSxlQUFXLE1BQU1DLEdBQWpCLElBQXdCSixHQUFHLENBQUNLLFlBQUosRUFBeEIsRUFBNEM7QUFDMUNGLE1BQUFBLFVBQVUsQ0FBQ0csSUFBWCxDQUFnQixDQUFDRixHQUFELEVBQU1GLEdBQU4sQ0FBaEI7QUFDRDs7QUFFRCxlQUFXLE1BQU1FLEdBQWpCLElBQXdCSixHQUFHLENBQUNPLGVBQUosRUFBeEIsRUFBK0M7QUFDN0NKLE1BQUFBLFVBQVUsQ0FBQ0csSUFBWCxDQUFnQixDQUFDRixHQUFELEVBQU0sSUFBTixDQUFoQjtBQUNEOztBQUVELFNBQUssSUFBSUksQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR0wsVUFBVSxDQUFDTSxNQUEvQixFQUF1QyxFQUFFRCxDQUF6QyxFQUE0QztBQUMxQyxZQUFNLENBQUNKLEdBQUQsRUFBTU0sS0FBTixJQUFlUCxVQUFVLENBQUNLLENBQUQsQ0FBL0I7QUFDQSxZQUFNRyxTQUFTLEdBQUdmLE9BQU8sQ0FBQ2dCLEdBQVIsQ0FBWVIsR0FBRyxDQUFDVixHQUFoQixDQUFsQjtBQUNBLFlBQU1tQixNQUFNLEdBQUdMLENBQUMsS0FBS0wsVUFBVSxDQUFDTSxNQUFYLEdBQW9CLENBQXpDLENBSDBDLENBSzFDOztBQUNBLFVBQUl2QixJQUFJLEdBQUdrQixHQUFHLENBQUNsQixJQUFmO0FBQ0EsVUFBSWtCLEdBQUcsQ0FBQ2hCLE9BQVIsRUFBaUJGLElBQUksR0FBRyxtQkFBTSxHQUFFQSxJQUFLLFVBQVNrQixHQUFHLENBQUNoQixPQUFRLEdBQXpDO0FBQ2pCLFVBQUlzQixLQUFKLEVBQVd4QixJQUFJLEdBQUdHLGVBQU15QixJQUFOLENBQVksR0FBRTVCLElBQUssUUFBbkIsQ0FBUDtBQUNYLFVBQUl5QixTQUFKLEVBQWV6QixJQUFJLEdBQUdHLGVBQU0wQixNQUFOLENBQWE3QixJQUFiLENBQVA7QUFFZixZQUFNOEIsU0FBUyxHQUFHZCxHQUFHLEdBQUdiLGVBQU15QixJQUFULEdBQWlCRyxDQUFELElBQWVBLENBQXBEO0FBRUEsV0FBS2pDLEdBQUwsQ0FBVSxHQUFFaUIsS0FBTSxHQUFFZSxTQUFTLENBQUUsR0FBRUgsTUFBTSxHQUFHLEdBQUgsR0FBUyxHQUFLLElBQXhCLENBQTZCLEdBQUUzQixJQUFLLEVBQWpFLEVBYjBDLENBZTFDOztBQUNBLFVBQUksQ0FBQ3lCLFNBQUwsRUFBZ0I7QUFDZGYsUUFBQUEsT0FBTyxDQUFDc0IsR0FBUixDQUFZZCxHQUFHLENBQUNWLEdBQWhCO0FBQ0EsY0FBTSxLQUFLSSxTQUFMLENBQWVNLEdBQWYsRUFBb0JILEtBQUssSUFBSVksTUFBTSxHQUFHLEtBQUgsR0FBV0csU0FBUyxDQUFDLEtBQUQsQ0FBOUIsQ0FBekIsRUFBaUVOLEtBQWpFLEVBQXdFZCxPQUF4RSxDQUFOO0FBQ0Q7QUFDRjtBQUNGOztBQTdEK0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXb3Jrc3BhY2UgfSBmcm9tICdAanVqdWxlZ28vamlsbC1jb3JlJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgQXJndW1lbnRzIH0gZnJvbSAnLi4vY29tbWFuZCc7XG5pbXBvcnQgeyBXb3Jrc3BhY2VBcmdzLCBXb3Jrc3BhY2VDb21tYW5kIH0gZnJvbSAnLi4vd29ya3NwYWNlLmNvbW1hbmQnO1xuXG4vLyBDb21tYW5kXG5leHBvcnQgY2xhc3MgSW5mb0NvbW1hbmQgZXh0ZW5kcyBXb3Jrc3BhY2VDb21tYW5kIHtcbiAgLy8gQXR0cmlidXRlc1xuICByZWFkb25seSBuYW1lID0gJ2luZm8nO1xuICByZWFkb25seSBkZXNjcmlwdGlvbiA9ICdQcmludCB3b3Jrc3BhY2UgZGF0YSc7XG5cbiAgLy8gTWV0aG9kc1xuICBwcm90ZWN0ZWQgYXN5bmMgcnVuKGFyZ3M6IEFyZ3VtZW50czxXb3Jrc3BhY2VBcmdzPik6IFByb21pc2U8bnVtYmVyIHwgdm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLnJ1bihhcmdzKTtcbiAgICB0aGlzLnNwaW5uZXIuc3RvcCgpO1xuXG4gICAgLy8gUHJpbnQgZGF0YVxuICAgIHRoaXMubG9nKGNoYWxrYFdvcmtzcGFjZSB7Ym9sZCAke3RoaXMud29ya3NwYWNlLm5hbWV9fTpgKTtcbiAgICB0aGlzLmxvZyhjaGFsa2B7Ym9sZCBWZXJzaW9uOn0gICAke3RoaXMud29ya3NwYWNlLm1hbmlmZXN0LnZlcnNpb24gfHwgY2hhbGsuZ3JleSgndW5zZXQnKX1gKTtcbiAgICB0aGlzLmxvZyhjaGFsa2B7Ym9sZCBEaXJlY3Rvcnk6fSAke3BhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgdGhpcy53b3Jrc3BhY2UuY3dkKSB8fCAnLid9YCk7XG4gICAgdGhpcy5sb2coJycpO1xuICAgIGF3YWl0IHRoaXMucHJpbnREZXBzVHJlZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmludERlcHNUcmVlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9nKGNoYWxrYHtib2xkIERlcGVuZGVuY2llczp9YCk7XG4gICAgY29uc3QgcHJpbnRlZCA9IG5ldyBTZXQoW3RoaXMud29ya3NwYWNlLm5hbWVdKTtcblxuICAgIGF3YWl0IHRoaXMucHJpbnRUcmVlKHRoaXMud29ya3NwYWNlLCAnJywgZmFsc2UsIHByaW50ZWQpO1xuXG4gICAgaWYgKHByaW50ZWQuc2l6ZSA9PT0gMSkge1xuICAgICAgdGhpcy5sb2coY2hhbGsuZ3JleShgICAgTm8gZGVwZW5kZW5jaWVzIGZvciAke3RoaXMud29ya3NwYWNlLm5hbWV9YCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJpbnRUcmVlKHdrczogV29ya3NwYWNlLCBsZXZlbDogc3RyaW5nLCBkZXY6IGJvb2xlYW4sIHByaW50ZWQ6IFNldDxzdHJpbmc+KSB7XG4gICAgY29uc3Qgd29ya3NwYWNlczogW1dvcmtzcGFjZSwgYm9vbGVhbl1bXSA9IFtdO1xuXG4gICAgZm9yIGF3YWl0IChjb25zdCBkZXAgb2Ygd2tzLmRlcGVuZGVuY2llcygpKSB7XG4gICAgICB3b3Jrc3BhY2VzLnB1c2goW2RlcCwgZGV2XSk7XG4gICAgfVxuXG4gICAgZm9yIGF3YWl0IChjb25zdCBkZXAgb2Ygd2tzLmRldkRlcGVuZGVuY2llcygpKSB7XG4gICAgICB3b3Jrc3BhY2VzLnB1c2goW2RlcCwgdHJ1ZV0pO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29ya3NwYWNlcy5sZW5ndGg7ICsraSkge1xuICAgICAgY29uc3QgW2RlcCwgaXNEZXZdID0gd29ya3NwYWNlc1tpXTtcbiAgICAgIGNvbnN0IGlzUHJpbnRlZCA9IHByaW50ZWQuaGFzKGRlcC5jd2QpO1xuICAgICAgY29uc3QgaXNMYXN0ID0gaSA9PT0gd29ya3NwYWNlcy5sZW5ndGggLSAxO1xuXG4gICAgICAvLyBGb3JtYXRcbiAgICAgIGxldCBuYW1lID0gZGVwLm5hbWU7XG4gICAgICBpZiAoZGVwLnZlcnNpb24pIG5hbWUgPSBjaGFsa2Ake25hbWV9e2dyZXkgQCR7ZGVwLnZlcnNpb259fWA7XG4gICAgICBpZiAoaXNEZXYpIG5hbWUgPSBjaGFsay5ibHVlKGAke25hbWV9IChkZXYpYCk7XG4gICAgICBpZiAoaXNQcmludGVkKSBuYW1lID0gY2hhbGsuaXRhbGljKG5hbWUpO1xuXG4gICAgICBjb25zdCBicmFuY2hGbXQgPSBkZXYgPyBjaGFsay5ibHVlIDogKHM6IHN0cmluZykgPT4gcztcblxuICAgICAgdGhpcy5sb2coYCR7bGV2ZWx9JHticmFuY2hGbXQoYCR7aXNMYXN0ID8gJ+KUlCcgOiAn4pScJyB94pSAIGApfSR7bmFtZX1gKTtcblxuICAgICAgLy8gUHJpbnQgZGVwcyBvZiBkZXBcbiAgICAgIGlmICghaXNQcmludGVkKSB7XG4gICAgICAgIHByaW50ZWQuYWRkKGRlcC5jd2QpO1xuICAgICAgICBhd2FpdCB0aGlzLnByaW50VHJlZShkZXAsIGxldmVsICsgKGlzTGFzdCA/ICcgICAnIDogYnJhbmNoRm10KCfilIIgICcpKSwgaXNEZXYsIHByaW50ZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSJdLCJmaWxlIjoiY29tbWFuZHMvaW5mby5jb21tYW5kLmpzIn0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ProjectArgs, ProjectCommand } from '../project.command';
|
|
2
|
+
import { Arguments, Builder } from '../command';
|
|
3
|
+
export declare type Attribute = 'name' | 'version' | 'root' | 'slug';
|
|
4
|
+
export declare type Data = Partial<Record<Attribute, string>>;
|
|
5
|
+
export interface ListArgs extends ProjectArgs {
|
|
6
|
+
private: boolean | undefined;
|
|
7
|
+
'with-script': string[] | undefined;
|
|
8
|
+
affected: string | undefined;
|
|
9
|
+
'affected-rev-sort': string | undefined;
|
|
10
|
+
'affected-rev-fallback': string;
|
|
11
|
+
attrs: Attribute[];
|
|
12
|
+
headers: boolean | undefined;
|
|
13
|
+
long: boolean | undefined;
|
|
14
|
+
json: boolean | undefined;
|
|
15
|
+
}
|
|
16
|
+
export declare class ListCommand extends ProjectCommand<ListArgs> {
|
|
17
|
+
readonly name: string[];
|
|
18
|
+
readonly description = "List workspaces";
|
|
19
|
+
private buildExtractor;
|
|
20
|
+
protected define<T, U>(builder: Builder<T, U>): Builder<T, U & ListArgs>;
|
|
21
|
+
protected run(args: Arguments<ListArgs>): Promise<number | void>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ListCommand = void 0;
|
|
7
|
+
|
|
8
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
9
|
+
|
|
10
|
+
var _slugify = _interopRequireDefault(require("slugify"));
|
|
11
|
+
|
|
12
|
+
var _path = _interopRequireDefault(require("path"));
|
|
13
|
+
|
|
14
|
+
var _project = require("../project.command");
|
|
15
|
+
|
|
16
|
+
var _pipeline = require("../pipeline");
|
|
17
|
+
|
|
18
|
+
var _filters = require("../filters");
|
|
19
|
+
|
|
20
|
+
var _cliList = require("../utils/cli-list");
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
+
|
|
24
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
25
|
+
|
|
26
|
+
// Constants
|
|
27
|
+
const LONG_ATTRIBUTES = ['name', 'version', 'root'];
|
|
28
|
+
const JSON_ATTRIBUTES = ['name', 'version', 'slug', 'root'];
|
|
29
|
+
const DEFAULT_ATTRIBUTES = ['name'];
|
|
30
|
+
const EXTRACTORS = {
|
|
31
|
+
name: wks => wks.name,
|
|
32
|
+
version: (wks, json) => wks.manifest.version || (json ? undefined : _chalk.default.grey('unset')),
|
|
33
|
+
root: wks => wks.cwd,
|
|
34
|
+
slug: wks => (0, _slugify.default)(wks.name)
|
|
35
|
+
}; // Command
|
|
36
|
+
|
|
37
|
+
class ListCommand extends _project.ProjectCommand {
|
|
38
|
+
constructor(...args) {
|
|
39
|
+
super(...args);
|
|
40
|
+
|
|
41
|
+
_defineProperty(this, "name", ['list', 'ls']);
|
|
42
|
+
|
|
43
|
+
_defineProperty(this, "description", 'List workspaces');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Methods
|
|
47
|
+
buildExtractor(attrs) {
|
|
48
|
+
return (wks, json) => {
|
|
49
|
+
const data = {};
|
|
50
|
+
|
|
51
|
+
for (const attr of attrs) {
|
|
52
|
+
data[attr] = EXTRACTORS[attr](wks, json);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return data;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
define(builder) {
|
|
60
|
+
return super.define(y => builder(y).option('private', {
|
|
61
|
+
type: 'boolean',
|
|
62
|
+
group: 'Filters:',
|
|
63
|
+
desc: 'Print only private workspaces'
|
|
64
|
+
}).option('with-script', {
|
|
65
|
+
type: 'array',
|
|
66
|
+
string: true,
|
|
67
|
+
group: 'Filters:',
|
|
68
|
+
desc: 'Print only workspaces having the given script'
|
|
69
|
+
}).option('affected', {
|
|
70
|
+
alias: 'a',
|
|
71
|
+
type: 'string',
|
|
72
|
+
coerce: rev => rev === '' ? 'master' : rev,
|
|
73
|
+
group: 'Affected:',
|
|
74
|
+
desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\n' + 'Replaces %name by workspace name.'
|
|
75
|
+
}).option('affected-rev-sort', {
|
|
76
|
+
type: 'string',
|
|
77
|
+
group: 'Affected:',
|
|
78
|
+
desc: 'Sort applied to git tag / git branch command'
|
|
79
|
+
}).option('affected-rev-fallback', {
|
|
80
|
+
type: 'string',
|
|
81
|
+
default: 'master',
|
|
82
|
+
group: 'Affected:',
|
|
83
|
+
desc: 'Fallback revision, used if no revision matching the given format is found'
|
|
84
|
+
}).option('attrs', {
|
|
85
|
+
type: 'array',
|
|
86
|
+
choices: ['name', 'version', 'root', 'slug'],
|
|
87
|
+
default: [],
|
|
88
|
+
group: 'Format:',
|
|
89
|
+
desc: 'Select printed attributes'
|
|
90
|
+
}).option('headers', {
|
|
91
|
+
type: 'boolean',
|
|
92
|
+
group: 'Format:',
|
|
93
|
+
desc: 'Prints columns headers'
|
|
94
|
+
}).option('long', {
|
|
95
|
+
alias: 'l',
|
|
96
|
+
type: 'boolean',
|
|
97
|
+
group: 'Format:',
|
|
98
|
+
desc: 'Prints name, version and root of all workspaces'
|
|
99
|
+
}).option('json', {
|
|
100
|
+
type: 'boolean',
|
|
101
|
+
group: 'Format:',
|
|
102
|
+
desc: 'Prints data as a JSON array'
|
|
103
|
+
}));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
async run(args) {
|
|
107
|
+
await super.run(args); // Setup pipeline
|
|
108
|
+
|
|
109
|
+
const pipeline = new _pipeline.Pipeline();
|
|
110
|
+
|
|
111
|
+
if (args.private !== undefined) {
|
|
112
|
+
pipeline.add(_filters.Filter.privateWorkspace(args.private));
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (args['with-script'] !== undefined) {
|
|
116
|
+
pipeline.add(_filters.Filter.scripts(args['with-script']));
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (args.affected !== undefined) {
|
|
120
|
+
pipeline.add(new _filters.AffectedFilter(args.affected, args['affected-rev-fallback'], args['affected-rev-sort']));
|
|
121
|
+
} // Filter
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
const workspaces = [];
|
|
125
|
+
|
|
126
|
+
for await (const wks of pipeline.filter(this.project.workspaces())) {
|
|
127
|
+
workspaces.push(wks);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
this.spinner.stop(); // Build data
|
|
131
|
+
|
|
132
|
+
let attrs = args.attrs;
|
|
133
|
+
|
|
134
|
+
if (args.attrs.length === 0) {
|
|
135
|
+
if (args.long) {
|
|
136
|
+
attrs = LONG_ATTRIBUTES;
|
|
137
|
+
} else if (args.json) {
|
|
138
|
+
attrs = JSON_ATTRIBUTES;
|
|
139
|
+
} else {
|
|
140
|
+
attrs = DEFAULT_ATTRIBUTES;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
const data = workspaces.map(wks => this.buildExtractor(attrs)(wks, args.json || false)); // Print data
|
|
145
|
+
|
|
146
|
+
if (args.json) {
|
|
147
|
+
if (process.stdout.isTTY) {
|
|
148
|
+
// Pretty print for ttys
|
|
149
|
+
this.log(JSON.stringify(data, null, 2));
|
|
150
|
+
} else {
|
|
151
|
+
this.log(JSON.stringify(data));
|
|
152
|
+
}
|
|
153
|
+
} else {
|
|
154
|
+
const list = new _cliList.CliList();
|
|
155
|
+
|
|
156
|
+
if (args.headers ?? attrs.length > 1) {
|
|
157
|
+
list.setHeaders(attrs);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
for (const d of data) {
|
|
161
|
+
if (d.root) {
|
|
162
|
+
d.root = _path.default.relative(process.cwd(), d.root) || '.';
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
list.add(attrs.map(attr => d[attr] || ''));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
for (const d of list.lines()) {
|
|
169
|
+
this.log(d);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
exports.ListCommand = ListCommand;
|
|
177
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1hbmRzL2xpc3QuY29tbWFuZC50cyJdLCJuYW1lcyI6WyJMT05HX0FUVFJJQlVURVMiLCJKU09OX0FUVFJJQlVURVMiLCJERUZBVUxUX0FUVFJJQlVURVMiLCJFWFRSQUNUT1JTIiwibmFtZSIsIndrcyIsInZlcnNpb24iLCJqc29uIiwibWFuaWZlc3QiLCJ1bmRlZmluZWQiLCJjaGFsayIsImdyZXkiLCJyb290IiwiY3dkIiwic2x1ZyIsIkxpc3RDb21tYW5kIiwiUHJvamVjdENvbW1hbmQiLCJidWlsZEV4dHJhY3RvciIsImF0dHJzIiwiZGF0YSIsImF0dHIiLCJkZWZpbmUiLCJidWlsZGVyIiwieSIsIm9wdGlvbiIsInR5cGUiLCJncm91cCIsImRlc2MiLCJzdHJpbmciLCJhbGlhcyIsImNvZXJjZSIsInJldiIsImRlZmF1bHQiLCJjaG9pY2VzIiwicnVuIiwiYXJncyIsInBpcGVsaW5lIiwiUGlwZWxpbmUiLCJwcml2YXRlIiwiYWRkIiwiRmlsdGVyIiwicHJpdmF0ZVdvcmtzcGFjZSIsInNjcmlwdHMiLCJhZmZlY3RlZCIsIkFmZmVjdGVkRmlsdGVyIiwid29ya3NwYWNlcyIsImZpbHRlciIsInByb2plY3QiLCJwdXNoIiwic3Bpbm5lciIsInN0b3AiLCJsZW5ndGgiLCJsb25nIiwibWFwIiwicHJvY2VzcyIsInN0ZG91dCIsImlzVFRZIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsImxpc3QiLCJDbGlMaXN0IiwiaGVhZGVycyIsInNldEhlYWRlcnMiLCJkIiwicGF0aCIsInJlbGF0aXZlIiwibGluZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBdUJBO0FBQ0EsTUFBTUEsZUFBNEIsR0FBRyxDQUFDLE1BQUQsRUFBUyxTQUFULEVBQW9CLE1BQXBCLENBQXJDO0FBQ0EsTUFBTUMsZUFBNEIsR0FBRyxDQUFDLE1BQUQsRUFBUyxTQUFULEVBQW9CLE1BQXBCLEVB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QUFlQyxLQUFuQixFQUEwQjtBQUFFO0FBQzFCLGFBQUtDLEdBQUwsQ0FBU0MsSUFBSSxDQUFDQyxTQUFMLENBQWV4QyxJQUFmLEVBQXFCLElBQXJCLEVBQTJCLENBQTNCLENBQVQ7QUFDRCxPQUZELE1BRU87QUFDTCxhQUFLc0MsR0FBTCxDQUFTQyxJQUFJLENBQUNDLFNBQUwsQ0FBZXhDLElBQWYsQ0FBVDtBQUNEO0FBQ0YsS0FORCxNQU1PO0FBQ0wsWUFBTXlDLElBQUksR0FBRyxJQUFJQyxnQkFBSixFQUFiOztBQUVBLFVBQUkxQixJQUFJLENBQUMyQixPQUFMLElBQWlCNUMsS0FBSyxDQUFDaUMsTUFBTixHQUFlLENBQXBDLEVBQXdDO0FBQ3RDUyxRQUFBQSxJQUFJLENBQUNHLFVBQUwsQ0FBZ0I3QyxLQUFoQjtBQUNEOztBQUVELFdBQUssTUFBTThDLENBQVgsSUFBZ0I3QyxJQUFoQixFQUFzQjtBQUNwQixZQUFJNkMsQ0FBQyxDQUFDcEQsSUFBTixFQUFZO0FBQ1ZvRCxVQUFBQSxDQUFDLENBQUNwRCxJQUFGLEdBQVNxRCxjQUFLQyxRQUFMLENBQWNaLE9BQU8sQ0FBQ3pDLEdBQVIsRUFBZCxFQUE2Qm1ELENBQUMsQ0FBQ3BELElBQS9CLEtBQXdDLEdBQWpEO0FBQ0Q7O0FBRURnRCxRQUFBQSxJQUFJLENBQUNyQixHQUFMLENBQVNyQixLQUFLLENBQUNtQyxHQUFOLENBQVVqQyxJQUFJLElBQUk0QyxDQUFDLENBQUM1QyxJQUFELENBQUQsSUFBVyxFQUE3QixDQUFUO0FBQ0Q7O0FBRUQsV0FBSyxNQUFNNEMsQ0FBWCxJQUFnQkosSUFBSSxDQUFDTyxLQUFMLEVBQWhCLEVBQThCO0FBQzVCLGFBQUtWLEdBQUwsQ0FBU08sQ0FBVDtBQUNEO0FBQ0Y7QUFDRjs7QUFwSnVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSAnQGp1anVsZWdvL2ppbGwtY29yZSc7XG5pbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHNsdWdpZnkgZnJvbSAnc2x1Z2lmeSc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgUHJvamVjdEFyZ3MsIFByb2plY3RDb21tYW5kIH0gZnJvbSAnLi4vcHJvamVjdC5jb21tYW5kJztcbmltcG9ydCB7IFBpcGVsaW5lIH0gZnJvbSAnLi4vcGlwZWxpbmUnO1xuaW1wb3J0IHsgQWZmZWN0ZWRGaWx0ZXIsIEZpbHRlciB9IGZyb20gJy4uL2ZpbHRlcnMnO1xuaW1wb3J0IHsgQ2xpTGlzdCB9IGZyb20gJy4uL3V0aWxzL2NsaS1saXN0JztcbmltcG9ydCB7IEFyZ3VtZW50cywgQnVpbGRlciB9IGZyb20gJy4uL2NvbW1hbmQnO1xuXG4vLyBUeXBlc1xuZXhwb3J0IHR5cGUgQXR0cmlidXRlID0gJ25hbWUnIHwgJ3ZlcnNpb24nIHwgJ3Jvb3QnIHwgJ3NsdWcnO1xuZXhwb3J0IHR5cGUgRGF0YSA9IFBhcnRpYWw8UmVjb3JkPEF0dHJpYnV0ZSwgc3RyaW5nPj47XG5cbnR5cGUgRXh0cmFjdG9yPFQ+ID0gKHdrczogV29ya3NwYWNlLCBqc29uOiBib29sZWFuKSA9PiBUO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RBcmdzIGV4dGVuZHMgUHJvamVjdEFyZ3Mge1xuICBwcml2YXRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAnd2l0aC1zY3JpcHQnOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICBhZmZlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAnYWZmZWN0ZWQtcmV2LXNvcnQnOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICdhZmZlY3RlZC1yZXYtZmFsbGJhY2snOiBzdHJpbmc7XG5cbiAgYXR0cnM6IEF0dHJpYnV0ZVtdO1xuICBoZWFkZXJzOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBsb25nOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBqc29uOiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vLyBDb25zdGFudHNcbmNvbnN0IExPTkdfQVRUUklCVVRFUzogQXR0cmlidXRlW10gPSBbJ25hbWUnLCAndmVyc2lvbicsICdyb290J107XG5jb25zdCBKU09OX0FUVFJJQlVURVM6IEF0dHJpYnV0ZVtdID0gWyduYW1lJywgJ3ZlcnNpb24nLCAnc2x1ZycsICdyb290J107XG5jb25zdCBERUZBVUxUX0FUVFJJQlVURVM6IEF0dHJpYnV0ZVtdID0gWyduYW1lJ107XG5cbmNvbnN0IEVYVFJBQ1RPUlM6IFJlY29yZDxBdHRyaWJ1dGUsIEV4dHJhY3RvcjxzdHJpbmcgfCB1bmRlZmluZWQ+PiA9IHtcbiAgbmFtZTogd2tzID0+IHdrcy5uYW1lLFxuICB2ZXJzaW9uOiAod2tzLCBqc29uKSA9PiB3a3MubWFuaWZlc3QudmVyc2lvbiB8fCAoanNvbiA/IHVuZGVmaW5lZCA6IGNoYWxrLmdyZXkoJ3Vuc2V0JykpLFxuICByb290OiB3a3MgPT4gd2tzLmN3ZCxcbiAgc2x1Zzogd2tzID0+IHNsdWdpZnkod2tzLm5hbWUpXG59O1xuXG4vLyBDb21tYW5kXG5leHBvcnQgY2xhc3MgTGlzdENvbW1hbmQgZXh0ZW5kcyBQcm9qZWN0Q29tbWFuZDxMaXN0QXJncz4ge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHJlYWRvbmx5IG5hbWUgPSBbJ2xpc3QnLCAnbHMnXTtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24gPSAnTGlzdCB3b3Jrc3BhY2VzJztcblxuICAvLyBNZXRob2RzXG4gIHByaXZhdGUgYnVpbGRFeHRyYWN0b3IoYXR0cnM6IEF0dHJpYnV0ZVtdKTogRXh0cmFjdG9yPERhdGE+IHtcbiAgICByZXR1cm4gKHdrcywganNvbjogYm9vbGVhbikgPT4ge1xuICAgICAgY29uc3QgZGF0YTogRGF0YSA9IHt9O1xuXG4gICAgICBmb3IgKGNvbnN0IGF0dHIgb2YgYXR0cnMpIHtcbiAgICAgICAgZGF0YVthdHRyXSA9IEVYVFJBQ1RPUlNbYXR0cl0od2tzLCBqc29uKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZWZpbmU8VCwgVT4oYnVpbGRlcjogQnVpbGRlcjxULCBVPik6IEJ1aWxkZXI8VCwgVSAmIExpc3RBcmdzPiB7XG4gICAgcmV0dXJuIHN1cGVyLmRlZmluZSh5ID0+IGJ1aWxkZXIoeSlcbiAgICAgIC5vcHRpb24oJ3ByaXZhdGUnLCB7XG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgZ3JvdXA6ICdGaWx0ZXJzOicsXG4gICAgICAgIGRlc2M6ICdQcmludCBvbmx5IHByaXZhdGUgd29ya3NwYWNlcycsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignd2l0aC1zY3JpcHQnLCB7XG4gICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgIHN0cmluZzogdHJ1ZSxcbiAgICAgICAgZ3JvdXA6ICdGaWx0ZXJzOicsXG4gICAgICAgIGRlc2M6ICdQcmludCBvbmx5IHdvcmtzcGFjZXMgaGF2aW5nIHRoZSBnaXZlbiBzY3JpcHQnLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb24oJ2FmZmVjdGVkJywge1xuICAgICAgICBhbGlhczogJ2EnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgY29lcmNlOiAocmV2OiBzdHJpbmcpID0+IHJldiA9PT0gJycgPyAnbWFzdGVyJyA6IHJldixcbiAgICAgICAgZ3JvdXA6ICdBZmZlY3RlZDonLFxuICAgICAgICBkZXNjOiAnUHJpbnQgb25seSBhZmZlY3RlZCB3b3Jrc3BhY2VzIHRvd2FyZHMgZ2l2ZW4gZ2l0IHJldmlzaW9uLiBJZiBubyByZXZpc2lvbiBpcyBnaXZlbiwgaXQgd2lsbCBjaGVjayB0b3dhcmRzIG1hc3Rlci5cXG4nICtcbiAgICAgICAgICAnUmVwbGFjZXMgJW5hbWUgYnkgd29ya3NwYWNlIG5hbWUuJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdhZmZlY3RlZC1yZXYtc29ydCcsIHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGdyb3VwOiAnQWZmZWN0ZWQ6JyxcbiAgICAgICAgZGVzYzogJ1NvcnQgYXBwbGllZCB0byBnaXQgdGFnIC8gZ2l0IGJyYW5jaCBjb21tYW5kJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdhZmZlY3RlZC1yZXYtZmFsbGJhY2snLCB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZWZhdWx0OiAnbWFzdGVyJyxcbiAgICAgICAgZ3JvdXA6ICdBZmZlY3RlZDonLFxuICAgICAgICBkZXNjOiAnRmFsbGJhY2sgcmV2aXNpb24sIHVzZWQgaWYgbm8gcmV2aXNpb24gbWF0Y2hpbmcgdGhlIGdpdmVuIGZvcm1hdCBpcyBmb3VuZCcsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignYXR0cnMnLCB7XG4gICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgIGNob2ljZXM6IFsnbmFtZScsICd2ZXJzaW9uJywgJ3Jvb3QnLCAnc2x1ZyddLFxuICAgICAgICBkZWZhdWx0OiBbXSBhcyBBdHRyaWJ1dGVbXSxcbiAgICAgICAgZ3JvdXA6ICdGb3JtYXQ6JyxcbiAgICAgICAgZGVzYzogJ1NlbGVjdCBwcmludGVkIGF0dHJpYnV0ZXMnXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignaGVhZGVycycsIHtcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBncm91cDogJ0Zvcm1hdDonLFxuICAgICAgICBkZXNjOiAnUHJpbnRzIGNvbHVtbnMgaGVhZGVycydcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdsb25nJywge1xuICAgICAgICBhbGlhczogJ2wnLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGdyb3VwOiAnRm9ybWF0OicsXG4gICAgICAgIGRlc2M6ICdQcmludHMgbmFtZSwgdmVyc2lvbiBhbmQgcm9vdCBvZiBhbGwgd29ya3NwYWNlcycsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignanNvbicsIHtcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBncm91cDogJ0Zvcm1hdDonLFxuICAgICAgICBkZXNjOiAnUHJpbnRzIGRhdGEgYXMgYSBKU09OIGFycmF5JyxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBydW4oYXJnczogQXJndW1lbnRzPExpc3RBcmdzPik6IFByb21pc2U8bnVtYmVyIHwgdm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLnJ1bihhcmdzKTtcblxuICAgIC8vIFNldHVwIHBpcGVsaW5lXG4gICAgY29uc3QgcGlwZWxpbmUgPSBuZXcgUGlwZWxpbmUoKTtcblxuICAgIGlmIChhcmdzLnByaXZhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGlwZWxpbmUuYWRkKEZpbHRlci5wcml2YXRlV29ya3NwYWNlKGFyZ3MucHJpdmF0ZSkpO1xuICAgIH1cblxuICAgIGlmIChhcmdzWyd3aXRoLXNjcmlwdCddICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBpcGVsaW5lLmFkZChGaWx0ZXIuc2NyaXB0cyhhcmdzWyd3aXRoLXNjcmlwdCddKSk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3MuYWZmZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGlwZWxpbmUuYWRkKG5ldyBBZmZlY3RlZEZpbHRlcihcbiAgICAgICAgYXJncy5hZmZlY3RlZCxcbiAgICAgICAgYXJnc1snYWZmZWN0ZWQtcmV2LWZhbGxiYWNrJ10sXG4gICAgICAgIGFyZ3NbJ2FmZmVjdGVkLXJldi1zb3J0J11cbiAgICAgICkpO1xuICAgIH1cblxuICAgIC8vIEZpbHRlclxuICAgIGNvbnN0IHdvcmtzcGFjZXM6IFdvcmtzcGFjZVtdID0gW107XG5cbiAgICBmb3IgYXdhaXQgKGNvbnN0IHdrcyBvZiBwaXBlbGluZS5maWx0ZXIodGhpcy5wcm9qZWN0LndvcmtzcGFjZXMoKSkpIHtcbiAgICAgIHdvcmtzcGFjZXMucHVzaCh3a3MpO1xuICAgIH1cblxuICAgIHRoaXMuc3Bpbm5lci5zdG9wKCk7XG5cbiAgICAvLyBCdWlsZCBkYXRhXG4gICAgbGV0IGF0dHJzID0gYXJncy5hdHRycztcblxuICAgIGlmIChhcmdzLmF0dHJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaWYgKGFyZ3MubG9uZykge1xuICAgICAgICBhdHRycyA9IExPTkdfQVRUUklCVVRFUztcbiAgICAgIH0gZWxzZSBpZiAoYXJncy5qc29uKSB7XG4gICAgICAgIGF0dHJzID0gSlNPTl9BVFRSSUJVVEVTO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXR0cnMgPSBERUZBVUxUX0FUVFJJQlVURVM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YSA9IHdvcmtzcGFjZXMubWFwKHdrcyA9PiB0aGlzLmJ1aWxkRXh0cmFjdG9yKGF0dHJzKSh3a3MsIGFyZ3MuanNvbiB8fCBmYWxzZSkpO1xuXG4gICAgLy8gUHJpbnQgZGF0YVxuICAgIGlmIChhcmdzLmpzb24pIHtcbiAgICAgIGlmIChwcm9jZXNzLnN0ZG91dC5pc1RUWSkgeyAvLyBQcmV0dHkgcHJpbnQgZm9yIHR0eXNcbiAgICAgICAgdGhpcy5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsaXN0ID0gbmV3IENsaUxpc3QoKTtcblxuICAgICAgaWYgKGFyZ3MuaGVhZGVycyA/PyAoYXR0cnMubGVuZ3RoID4gMSkpIHtcbiAgICAgICAgbGlzdC5zZXRIZWFkZXJzKGF0dHJzKTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBkIG9mIGRhdGEpIHtcbiAgICAgICAgaWYgKGQucm9vdCkge1xuICAgICAgICAgIGQucm9vdCA9IHBhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgZC5yb290KSB8fCAnLic7XG4gICAgICAgIH1cblxuICAgICAgICBsaXN0LmFkZChhdHRycy5tYXAoYXR0ciA9PiBkW2F0dHJdIHx8ICcnKSk7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgZCBvZiBsaXN0LmxpbmVzKCkpIHtcbiAgICAgICAgdGhpcy5sb2coZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59Il0sImZpbGUiOiJjb21tYW5kcy9saXN0LmNvbW1hbmQuanMifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { WorkspaceDepsMode } from '@jujulego/jill-core';
|
|
2
|
+
import { Arguments, Builder } from '../command';
|
|
3
|
+
import { WorkspaceArgs, WorkspaceCommand } from '../workspace.command';
|
|
4
|
+
export interface RunArgs extends WorkspaceArgs {
|
|
5
|
+
script: string;
|
|
6
|
+
'deps-mode': WorkspaceDepsMode;
|
|
7
|
+
}
|
|
8
|
+
export declare class RunCommand extends WorkspaceCommand<RunArgs> {
|
|
9
|
+
readonly name = "run <script>";
|
|
10
|
+
readonly description = "Run script inside workspace";
|
|
11
|
+
protected define<T, U>(builder: Builder<T, U>): Builder<T, U & RunArgs>;
|
|
12
|
+
protected run(args: Arguments<RunArgs>): Promise<number>;
|
|
13
|
+
}
|