1 | ;
|
2 | var cli_commands_1 = require("./cli.commands");
|
3 | var _ = require("../lodash.custom");
|
4 | var cli_parse_1 = require("./cli.parse");
|
5 | function default_1(args) {
|
6 | var command = args[0];
|
7 | var match = getCommand(command, cli_commands_1.commands);
|
8 | if (!match.length) {
|
9 | // first look if the user provided a --version flag
|
10 | var cli_1 = cli_parse_1.default(["no-command"].concat(args), require("../opts/global-common.json"));
|
11 | if (cli_1.flags.version) {
|
12 | return { cli: cli_1, execute: false, output: [require("../package.json").version] };
|
13 | }
|
14 | var commandOptions_1 = cli_commands_1.commands["run"].opts.map(require);
|
15 | var opts_1 = _.merge.apply(_, [{}].concat(commandOptions_1));
|
16 | var cli2 = cli_parse_1.default(["run"].concat(args), opts_1);
|
17 | /**
|
18 | * If there was additional input, try to run a task
|
19 | */
|
20 | if (cli2.input.length > 1) {
|
21 | return { cli: cli2, execute: true, output: [] };
|
22 | }
|
23 | return { cli: cli2, execute: false, output: [printHelp(cli_commands_1.commands)] };
|
24 | }
|
25 | var commandName = match[0];
|
26 | var commandOptions = cli_commands_1.commands[commandName].opts.map(require);
|
27 | var opts = _.merge.apply(_, [{}].concat(commandOptions));
|
28 | var cli = cli_parse_1.default(args, opts);
|
29 | /**
|
30 | * Here, the user gave the --help flag along with a valid
|
31 | * command. So we show command-specific help
|
32 | */
|
33 | if (cli.flags.help) {
|
34 | return { cli: cli, execute: false, output: [cli_commands_1.commands[match[0]].help] };
|
35 | }
|
36 | return { cli: cli, execute: true, output: [] };
|
37 | }
|
38 | Object.defineProperty(exports, "__esModule", { value: true });
|
39 | exports.default = default_1;
|
40 | function printHelp(commands) {
|
41 | return "Usage: crossbow [command] [..args] [OPTIONS]\n\n{bold:Crossbow Commands:} \n\n" + cli_commands_1.twoColFromJson(commands, "description") + "\n\n{bold:Example: Run the task 'build-js'}\n\n $ crossbow run build-js\n \n{bold:Example: Run the tasks build-css and build-js in sequence}\n\n $ crossbow run build-css build-js\n \n{bold:For more detailed help, use the command name + the --help flag}\n\n $ crossbow run --help\n $ crossbow init --help\n";
|
42 | }
|
43 | function getCommand(incoming, commands) {
|
44 | return Object.keys(commands).reduce(function (acc, item) {
|
45 | var selected = commands[item];
|
46 | /**
|
47 | * A direct match - this means the typed command matches
|
48 | * an command name exactly.
|
49 | *
|
50 | * eg:
|
51 | * $ crossbow run
|
52 | *
|
53 | * -> ['run']
|
54 | */
|
55 | if (item === incoming) {
|
56 | return acc.concat(item);
|
57 | }
|
58 | /**
|
59 | * An alias match is when a short-hand command was given
|
60 | * and it existed in the 'alias' array for a command.
|
61 | *
|
62 | * eg:
|
63 | *
|
64 | * $ crossbow run
|
65 | *
|
66 | * commands:
|
67 | *
|
68 | * run: { alias:['run', 'r'] }
|
69 | *
|
70 | * -> ['run']
|
71 | *
|
72 | */
|
73 | if (selected.alias && selected.alias.indexOf(incoming) > -1) {
|
74 | return acc.concat(item);
|
75 | }
|
76 | return acc;
|
77 | }, []);
|
78 | }
|
79 | exports.getCommand = getCommand;
|
80 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNkJBQW9ELGdCQUFnQixDQUFDLENBQUE7QUFDckUsSUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDdEMsMEJBQWlDLGFBQWEsQ0FBQyxDQUFBO0FBUS9DLG1CQUF5QixJQUFjO0lBRW5DLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixJQUFNLEtBQUssR0FBSyxVQUFVLENBQUMsT0FBTyxFQUFFLHVCQUFRLENBQUMsQ0FBQztJQUU5QyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRWhCLG1EQUFtRDtRQUNuRCxJQUFNLEtBQUcsR0FBRyxtQkFBSyxDQUFDLENBQUMsWUFBWSxTQUFLLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUM7UUFFbEYsRUFBRSxDQUFDLENBQUMsS0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxFQUFDLFVBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUM7UUFDL0UsQ0FBQztRQUVELElBQU0sZ0JBQWMsR0FBRyx1QkFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekQsSUFBTSxNQUFJLEdBQWEsQ0FBQyxDQUFDLEtBQUssT0FBUCxDQUFDLEdBQU8sRUFBRSxTQUFLLGdCQUFjLEVBQUMsQ0FBQztRQUN0RCxJQUFNLElBQUksR0FBYyxtQkFBSyxDQUFDLENBQUMsS0FBSyxTQUFLLElBQUksQ0FBQyxFQUFFLE1BQUksQ0FB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 |
\ | No newline at end of file |