mirror of
https://github.com/angular/angular-cli.git
synced 2025-05-22 15:02:11 +08:00
BREAKING CHANGE: Removing the `ng init` & `ng update` commands because their current implementation causes more problems than it solves. Once RC is released, we won't need to use those to update anymore as the step will be as simple as installing the latest version of the CLI.
71 lines
1.8 KiB
TypeScript
71 lines
1.8 KiB
TypeScript
import * as fs from 'fs';
|
|
import * as path from 'path';
|
|
|
|
const Command = require('../ember-cli/lib/models/command');
|
|
const stringUtils = require('ember-cli-string-utils');
|
|
const lookupCommand = require('../ember-cli/lib/cli/lookup-command');
|
|
|
|
const commandsToIgnore = [
|
|
'easter-egg',
|
|
'init',
|
|
'destroy'
|
|
];
|
|
|
|
const HelpCommand = Command.extend({
|
|
name: 'help',
|
|
description: 'Shows help for the CLI',
|
|
works: 'everywhere',
|
|
|
|
availableOptions: [],
|
|
|
|
anonymousOptions: ['command-name (Default: all)'],
|
|
|
|
run: function (commandOptions: any, rawArgs: any) {
|
|
let commandFiles = fs.readdirSync(__dirname)
|
|
// Remove files that are not JavaScript or Typescript
|
|
.filter(file => file.match(/\.(j|t)s$/) && !file.match(/\.d.ts$/))
|
|
.map(file => path.parse(file).name)
|
|
.map(file => file.toLowerCase());
|
|
|
|
commandFiles = commandFiles.filter(file => {
|
|
return commandsToIgnore.indexOf(file) < 0;
|
|
});
|
|
|
|
let commandMap = commandFiles.reduce((acc: any, curr: string) => {
|
|
let classifiedName = stringUtils.classify(curr);
|
|
let defaultImport = require(`./${curr}`).default;
|
|
|
|
acc[classifiedName] = defaultImport;
|
|
|
|
return acc;
|
|
}, {});
|
|
|
|
if (rawArgs.indexOf('all') !== -1) {
|
|
rawArgs = []; // just act as if command not specified
|
|
}
|
|
|
|
commandFiles.forEach(cmd => {
|
|
let Command = lookupCommand(commandMap, cmd);
|
|
|
|
let command = new Command({
|
|
ui: this.ui,
|
|
project: this.project,
|
|
commands: this.commands,
|
|
tasks: this.tasks
|
|
});
|
|
|
|
if (rawArgs.length > 0) {
|
|
if (cmd === rawArgs[0]) {
|
|
this.ui.writeLine(command.printDetailedHelp(commandOptions));
|
|
}
|
|
} else {
|
|
this.ui.writeLine(command.printBasicHelp(commandOptions));
|
|
}
|
|
|
|
});
|
|
}
|
|
});
|
|
|
|
HelpCommand.overrideCore = true;
|
|
export default HelpCommand;
|