app.exec
v1.0.4
Published
Модуль для запуска консольных команд.
Downloads
3
Maintainers
Readme
Что это?
App.exec — это npm-пакет с помощью которого вы можете быстро выполнить список консольных команд.
Установка
$ npm i app.exec
Подключение
const Exec = require('app.exec');
Быстрый старт
Exec([
['command1'],
['command2', '--arg1', '--arg2']
], true);
Результат всех команд будет выведен сразу в консоль.
Пример #1
const Exec = require('app.exec');
Exec([
['ls'],
['ls', '-la']
], true);
//=> Старт: "ls"
//=> exec.js
//=> README.md
//=>
//=> Старт: "ls -la"
//=> итого 60
//=> -rw-r--r-- 1 root root 4768 апр 20 01:06 exec.js
//=> -rw-r--r-- 1 root root 977 апр 20 00:22 README.md
Использование как Promise
let result = await Exec([
['command1'],
['command2', '--arg1', '--arg2']
]);
console.log(result);
Результат всех команд будет передан в переменную result
Пример #2
const Exec = require('app.exec');
(async () => {
let result = await Exec([
['ls'],
['ls', '-la']
]);
console.log(result);
//=> Старт: "ls"
//=> exec.js
//=> README.md
//=>
//=> Старт: "ls -la"
//=> итого 60
//=> -rw-r--r-- 1 root root 4768 апр 20 01:06 exec.js
//=> -rw-r--r-- 1 root root 977 апр 20 00:22 README.md
})();
Использование как Callback
new Exec([
['command1'],
['command2', '--arg1', '--arg2']
])
.onEnd((result) => {
console.log(result);
});
Колбэк onEnd
будет выполнен после всех команд,
а результат передан в переменную result
Пример #3
const Exec = require('app.exec');
new Exec([
['ls'],
['ls', '-la']
])
.onEnd((result) => {
console.log(result);
//=> Старт: "ls"
//=> exec.js
//=> README.md
//=>
//=> Старт: "ls -la"
//=> итого 60
//=> -rw-r--r-- 1 root root 4768 апр 20 01:06 exec.js
//=> -rw-r--r-- 1 root root 977 апр 20 00:22 README.md
});
Как обработать каждую команду?
new Exec([
['command1'],
['command2', '--arg1', '--arg2']
])
.onCommand((commandResult) => {
process.stdout.write(commandResult);
});
Колбэк onCommand
будет выполняться после каждой команды,
а результат передан в переменную commandResult
Пример #4
const Exec = require('app.exec');
new Exec([
['ls'],
['ls', '-la']
])
.onCommand((commandResult) => {
process.stdout.write(commandResult);
//=> Старт: "ls"
//=> exec.js
//=> README.md
});
Как получить промежуточный результат?
let exec = new Exec([
['command1'],
['command2', '--arg1', '--arg2']
]);
setTimeout(() => {
console.log(exec.logs);
}, 2000);
Вы также в любой момент можете получить промежуточный результат через exec.logs
Пример #5
const Exec = require('app.exec');
let exec = new Exec([
['ls'],
['ls', '-la']
]);
setTimeout(() => {
console.log(exec.logs);
//=> Старт: "ls"
//=> exec.js
//=> README.md
//=>
//=> Старт: "ls -la"
//=> итого 60
//=> -rw-r--r-- 1 root root 4768 апр 20 01:06 exec.js
//=> -rw-r--r-- 1 root root 977 апр 20 00:22 README.md
}, 2000);
Лимит истории команд
По умолчанию в result
добавляются результаты последних 20 команд,
но вы всегда можете задать нужне вам лимиты.
let result = await Exec([
['command1'],
['command2', '--arg1', '--arg2']
], false, 100);
console.log(result);// В "result" будут добавлены результаты последних 100 команд
Убрать ограничения можно выставив лимит равным 0
let result = await Exec([
['command1'],
['command2', '--arg1', '--arg2']
], false, 0);
console.log(result);// В "result" будут добавлены результаты всех команд.