bit-bin
Version:
<a href="https://opensource.org/licenses/Apache-2.0"><img alt="apache" src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"></a> <a href="https://github.com/teambit/bit/blob/master/CONTRIBUTING.md"><img alt="prs" src="https://img.shields.io/b
97 lines (73 loc) • 2.52 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
function _padRight() {
const data = _interopRequireDefault(require("pad-right"));
_padRight = function () {
return data;
};
return data;
}
function _chalk() {
const data = _interopRequireDefault(require("chalk"));
_chalk = function () {
return data;
};
return data;
}
function _allHelp() {
const data = _interopRequireDefault(require("./all-help"));
_allHelp = function () {
return data;
};
return data;
}
function _constants() {
const data = require("../../constants");
_constants = function () {
return data;
};
return data;
}
const SPACE = ' ';
const TITLE_LEFT_SPACES_NUMBER = 2;
const COMMAND_LEFT_SPACES_NUMBER = 4;
const NAME_WITH_SPACES_LENGTH = 15;
const baseTemplate = commands => {
return `${_chalk().default.bold('usage: bit [--version] [--help] <command> [<args>]')}
${_chalk().default.grey('bit is a free and open source tool for turning components from existing source-code to a collection of reusable components.')}
${_chalk().default.grey('easily share, reuse, maintain and discover code components from any project.')}
${_chalk().default.grey(`bit documentation: https://${_constants().BASE_DOCS_DOMAIN}`)}
${commandsTemplate(commands)}
${_chalk().default.grey("please use 'bit <command> --help' for more information and guides on specific commands.")}`;
};
function commandTemplate(command) {
const {
name,
description
} = command;
const nameSpace = SPACE.repeat(COMMAND_LEFT_SPACES_NUMBER);
const nameWithRightSpace = (0, _padRight().default)(name, NAME_WITH_SPACES_LENGTH, SPACE);
const res = `${nameSpace}${_chalk().default.cyan(nameWithRightSpace)}${description}`;
return res;
}
function commandsSectionTemplate(section) {
const titleSpace = SPACE.repeat(TITLE_LEFT_SPACES_NUMBER);
const title = `${titleSpace}${_chalk().default.underline(section.title)}`;
const commands = section.commands.map(commandTemplate).join('\n');
const res = `${title}\n${commands}`;
return res;
}
function commandsTemplate(commands) {
const res = commands.map(commandsSectionTemplate).join('\n\n');
return res;
}
module.exports = function (extensionsCommands) {
if (extensionsCommands && extensionsCommands.length) {
_allHelp().default.push({
group: 'extensions',
title: 'extensions commands',
commands: extensionsCommands
});
}
return baseTemplate(_allHelp().default);
};
;