diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/coa/README.ru.md | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
Diffstat (limited to 'node_modules/coa/README.ru.md')
| -rw-r--r-- | node_modules/coa/README.ru.md | 316 |
1 files changed, 316 insertions, 0 deletions
diff --git a/node_modules/coa/README.ru.md b/node_modules/coa/README.ru.md new file mode 100644 index 00000000..54a8bafe --- /dev/null +++ b/node_modules/coa/README.ru.md @@ -0,0 +1,316 @@ +# Command-Option-Argument +[](http://travis-ci.org/veged/coa) + +## Что это? + +COA — парсер параметров командной строки, позволяющий извлечь максимум пользы от формального API вашей программы. +Как только вы опишете определение в терминах команд, параметров и аргументов, вы автоматически получите: + +* Справку для командной строки +* API для использования программы как модуля в COA-совместимых программах +* Автодополнение для командной строки + +### Прочие возможности + +* Широкий выбор настроек для параметров и аргументов, включая множественные значения, логические значения и обязательность параметров +* Возможность асинхронного исполнения команд, используя промисы (используется библиотека [Q](https://github.com/kriskowal/q)) +* Простота использования существующих команд как подмодулей для новых команд +* Комбинированная валидация и анализ сложных значений + +## Примеры + +````javascript +require('coa').Cmd() // декларация команды верхнего уровня + .name(process.argv[1]) // имя команды верхнего уровня, берем из имени программы + .title('Жутко полезная утилита для командной строки') // название для использования в справке и сообщениях + .helpful() // добавляем поддержку справки командной строки (-h, --help) + .opt() // добавляем параметр + .name('version') // имя параметра для использования в API + .title('Version') // текст для вывода в сообщениях + .short('v') // короткое имя параметра: -v + .long('version') // длинное имя параметра: --version + .flag() // параметр не требует ввода значения + .act(function(opts) { // действия при вызове аргумента + // результатом является вывод текстового сообщения + return JSON.parse(require('fs').readFileSync(__dirname + '/package.json')) + .version; + }) + .end() // завершаем определение параметра и возвращаемся к определению верхнего уровня + .cmd().name('subcommand').apply(require('./subcommand').COA).end() // загрузка подкоманды из модуля + .cmd() // добавляем еще одну подкоманду + .name('othercommand').title('Еще одна полезная подпрограмма').helpful() + .opt() + .name('input').title('input file, required') + .short('i').long('input') + .val(function(v) { // функция-валидатор, также может использоваться для трансформации значений параметров + return require('fs').createReadStream(v) }) + .req() // параметр является обязательным + .end() // завершаем определение параметра и возвращаемся к определению команды + .end() // завершаем определение подкоманды и возвращаемся к определению команды верхнего уровня + .run(process.argv.slice(2)); // разбираем process.argv и запускаем +```` + +````javascript +// subcommand.js +exports.COA = function() { + this + .title('Полезная подпрограмма').helpful() + .opt() + .name('output').title('output file') + .short('o').long('output') + .output() // использовать стандартную настройку для параметра вывода + .end() +}; +```` + +## API + +### Cmd +Команда — сущность верхнего уровня. У команды могут быть определены параметры и аргументы. + +#### Cmd.api +Возвращает объект, который можно использовать в других программах. Подкоманды являются методами этого объекта.<br> +**@returns** *{Object}* + +#### Cmd.name +Определяет канонический идентификатор команды, используемый в вызовах API.<br> +**@param** *String* `_name` имя команды<br> +**@returns** *COA.Cmd* `this` экземпляр команды (для поддержки цепочки методов) + +#### Cmd.title +Определяет название команды, используемый в текстовых сообщениях.<br> +**@param** *String* `_title` название команды<br> +**@returns** *COA.Cmd* `this` экземпляр команды (для поддержки цепочки методов) + +#### Cmd.cmd +Создает новую подкоманду или добавляет ранее определенную подкоманду к текущей команде.<br> +**@param** *COA.Cmd* `[cmd]` экземпляр ранее определенной подкоманды<br> +**@returns** *COA.Cmd* экземпляр новой или ранее определенной подкоманды + +#### Cmd.opt +Создает параметр для текущей команды.<br> +**@returns** *COA.Opt* `new` экземпляр параметра + +#### Cmd.arg +Создает аргумент для текущей команды.<br> +**@returns** *COA.Opt* `new` экземпляр аргумента + +#### Cmd.act +Добавляет (или создает) действие для текущей команды.<br> +**@param** *Function* `act` функция, + выполняемая в контексте экземпляра текущей команды + и принимающая следующие параметры:<br> + - *Object* `opts` параметры команды<br> + - *Array* `args` аргументы команды<br> + - *Object* `res` объект-аккумулятор результатов<br> + Функция может вернуть проваленный промис из Cmd.reject (в случае ошибки) + или любое другое значение, рассматриваемое как результат.<br> +**@param** *{Boolean}* [force=false] флаг, назначающий немедленное исполнение вместо добавления к списку существующих действий<br> +**@returns** *COA.Cmd* `this` экземпляр команды (для поддержки цепочки методов) + +#### Cmd.apply +Исполняет функцию с переданными аргументами в контексте экземпляра текущей команды.<br> +**@param** *Function* `fn`<br> +**@param** *Array* `args`<br> +**@returns** *COA.Cmd* `this` экземпляр команды (для поддержки цепочки методов) + +#### Cmd.comp +Назначает кастомную функцию автодополнения для текущей команды.<br> +**@param** *Function* `fn` функция-генератор автодополнения, + исполняемая в контексте текущей команды. + Принимает параметры:<br> + - *Object* `opts` параметры<br> + Может возвращать промис или любое другое значение, рассматриваемое как результат исполнения команды.<br> +**@returns** *COA.Cmd* `this` экземпляр команды (для поддержки цепочки методов) + +#### Cmd.helpful +Ставит флаг поддержки справки командной строки, т.е. вызов команды с параметрами -h --help выводит справку по работе с командой.<br> +**@returns** *COA.Cmd* `this` экземпляр команды (для поддержки цепочки методов) + +#### Cmd.completable +Добавляет поддержку автодополнения командной строки. Добавляется подкоманда "completion", которая выполняет все необходимые действия.<br> +Может быть добавлен только для главной команды.<br> +**@returns** *COA.Cmd* `this` экземпляр команды (для поддержки цепочки методов) + +#### Cmd.usage +Возвращает текст справки по использованию команды для текущего экземпляра.<br> +**@returns** *String* `usage` Текст справки по использованию + +#### Cmd.run +Разбирает аргументы из значения, возвращаемого NodeJS process.argv, +и запускает текущую программу, т.е. вызывает process.exit после завершения +всех действий.<br> +**@param** *Array* `argv`<br> +**@returns** *COA.Cmd* `this` экземпляр команды (для поддержки цепочки методов) + +#### Cmd.invoke +Исполняет переданную (или текущую) команду с указанными параметрами и аргументами.<br> +**@param** *String|Array* `cmds` подкоманда для исполнения (необязательно)<br> +**@param** *Object* `opts` параметры, передаваемые команде (необязательно)<br> +**@param** *Object* `args` аргументы, передаваемые команде (необязательно)<br> +**@returns** *Q.Promise* + +#### Cmd.reject +Проваливает промисы, возращенные в действиях.<br> +Используется в .act() для возврата с ошибкой.<br> +**@param** *Object* `reason` причина провала<br> + Вы можете определить метод toString() и свойство toString() + объекта причины провала.<br> +**@returns** *Q.promise* проваленный промис + +#### Cmd.end +Завершает цепочку методов текущей подкоманды и возвращает экземпляр родительской команды.<br> +**@returns** *COA.Cmd* `parent` родительская команда + +### Opt +Параметр — именованная сущность. У параметра может быть определено короткое или длинное имя для использования из командной строки.<br> +**@namespace**<br> +**@class** Переданный параметр + +#### Opt.name +Определяет канонический идентификатор параметра, используемый в вызовах API.<br> +**@param** *String* `_name` имя параметра<br> +**@returns** *COA.Opt* `this` экземпляр параметра (для поддержки цепочки методов) + +#### Opt.title +Определяет описание для параметра, используемое в текстовых сообщениях.<br> +**@param** *String* `_title` название параметра<br> +**@returns** *COA.Opt* `this` экземпляр параметра (для поддержки цепочки методов) + +#### Opt.short +Назначает ключ для короткого имени параметра, передаваемого из командной строки с одинарным дефисом (например, `-v`).<br> +**@param** *String* `_short`<br> +**@returns** *COA.Opt* `this` экземпляр параметра (для поддержки цепочки методов) + +#### Opt.long +Назначает ключ для длинного имени параметра, передаваемого из командной строки с двойным дефисом (например, `--version`).<br> +**@param** *String* `_long`<br> +**@returns** *COA.Opt* `this` экземпляр параметра (для поддержки цепочки методов) + +#### Opt.flag +Помечает параметр как логический, т.е. параметр не имеющий значения.<br> +**@returns** *COA.Opt* `this` экземпляр параметра (для поддержки цепочки методов) + +#### Opt.arr +Помечает параметр как принимающий множественные значения.<br> +Иначе будет использовано последнее переданное значение параметра.<br> +**@returns** *COA.Opt* `this` экземпляр параметра (для поддержки цепочки методов) + +#### Opt.req +Помечает параметр как обязательный.<br> +**@returns** *COA.Opt* `this` экземпляр параметра (для поддержки цепочки методов) + +#### Opt.only +Интерпретирует параметр как команду, +т.е. программа будет завершена сразу после выполнения параметра.<br> +**@returns** *COA.Opt* `this` экземпляр параметра (для поддержки цепочки методов) + +#### Opt.val +Назначает функцию валидации (или трансформации значения) для значения параметра.<br> +Значение, полученное из командной строки, передается в функцию-валидатор прежде чем оно станет доступно из API.<br> +Используется для валидации и трансформации введенных данных.<br> +**@param** *Function* `_val` функция валидации, + исполняемая в контексте экземпляра параметра + и принимающая в качестве единственного параметра значение, полученное + из командной строки<br> +**@returns** *COA.Opt* `this` экземпляр параметра (для поддержки цепочки методов) + +#### Opt.def +Назначает значение параметра по умолчанию. Это значение также передается +в функцию валидации как обычное значение.<br> +**@param** *Object* `_def`<br> +**@returns** *COA.Opt* `this` экземпляр параметра (для поддержки цепочки методов) + +#### Opt.input +Помечает параметр как принимающий ввод пользователя. <br> +Позволяет использовать валидацию для STDIN.<br> +**@returns** *{COA.Opt}* `this` экземпляр параметра (для поддержки цепочки методов) + +#### Opt.output +Помечает параметр как вывод.<br> +Позволяет использовать валидацию для STDOUT.<br> +**@returns** *COA.Opt* `this` экземпляр параметра (для поддержки цепочки методов) + +#### Opt.act +Добавляет (или создает) действие для текущего параметра команды. +Это действие будет выполнено, если текущий параметр есть +в списке полученных параметров (с любым значением).<br> +**@param** *Function* `act` функция, выполняемая в контексте + экземпляра текущей команды и принимающая следующие параметры:<br> + - *Object* `opts` параметры команды<br> + - *Array* `args` аргументы команды<br> + - *Object* `res` объект-аккумулятор результатов<br> + Функция может вернуть проваленный промис из Cmd.reject (в случае ошибки) + или любое другое значение, рассматриваемое как результат.<br> +**@returns** *COA.Opt* `this` экземпляр параметра (для поддержки цепочки методов) + +#### Opt.comp +Назначает кастомную функцию автодополнения для текущей команды.<br> +**@param** *Function* `fn` функция-генератор автодоплнения, исполняемая в + контексте экземпляра команды. + Принимает параметры:<br> + - *Object* `opts` параметры автодополнения<br> + Может возвращать промис или любое другое значение, рассматриваемое как результат исполнения команды.<br> +**@returns** *COA.Opt* `this` экземпляр параметра (для поддержки цепочки методов) + +#### Opt.end +Завершает цепочку методов текущего параметра и возвращает экземпляр родительской команды.<br> +**@returns** *COA.Cmd* `parent` родительская команда + + +### Arg +Аргумент — неименованная сущность.<br> +Аргументы передаются из командной строки как список неименованных значений. + +#### Arg.name +Определяет канонический идентификатор аргумента, используемый в вызовах API.<br> +**@param** *String* `_name` имя аргумента<br> +**@returns** *COA.Arg* `this` экземпляр аргумента (для поддержки цепочки методов) + +#### Arg.title +Определяет описание для аргумента, используемое в текстовых сообщениях.<br> +**@param** *String* `_title` описание аргумента<br> +**@returns** *COA.Arg* `this` экземпляр аргумента (для поддержки цепочки методов) + +#### Arg.arr +Помечает аргумент как принимающий множественные значения.<br> +Иначе будет использовано последнее переданное значение аргумента.<br> +**@returns** *COA.Arg* `this` экземпляр аргумента (для поддержки цепочки методов) + +#### Arg.req +Помечает аргумент как обязательный.<br> +**@returns** *COA.Arg* `this` экземпляр аргумента (для поддержки цепочки методов) + +#### Arg.val +Назначает функцию валидации (или трансформации значения) для аргумента.<br> +Значение, полученное из командной строки, передается в функцию-валидатор прежде чем оно станет доступно из API.<br> +Используется для валидации и трансформации введенных данных.<br> +**@param** *Function* `_val` функция валидации, + исполняемая в контексте экземпляра аргумента + и принимающая в качестве единственного параметра значение, полученное + из командной строки<br> +**@returns** *COA.Opt* `this` экземпляр аргумента (для поддержки цепочки методов) + +#### Arg.def +Назначает дефолтное значение для аргумента. Дефолтное значение передается +в функцию валидации как обычное значение.<br> +**@param** *Object* `_def`<br> +**@returns** *COA.Arg* `this` экземпляр аргумента (для поддержки цепочки методов) + +#### Arg.output +Помечает параметр как вывод.<br> +Позволяет назначить валидацию для STDOUT.<br> +**@returns** *COA.Arg* `this` экземпляр аргумента (для поддержки цепочки методов) + +#### Arg.comp +Назначает кастомную функцию автодополнения для текущего аргумента.<br> +**@param** *Function* `fn` функция-генератор автодоплнения, + исполняемая в контексте текущей команды. + Принимает параметры:<br> + - *Object* `opts` параметры +Может возвращать промис или любое другое значение, рассматриваемое как результат исполнения команды.<br> +**@returns** *COA.Arg* `this` экземпляр аргумента (для поддержки цепочки методов) + +#### Arg.end +Завершает цепочку методов текущего аргумента и возвращает экземпляр родительской команды.<br> +**@returns** *COA.Cmd* `parent` родительская команда |
