app.exec

1.0.4 • Public • Published

Что это?

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" будут добавлены результаты всех команд.

Package Sidebar

Install

npm i app.exec

Weekly Downloads

1

Version

1.0.4

License

none

Unpacked Size

15 kB

Total Files

6

Last publish

Collaborators

  • classtype