esc-get-cmd-stdout-array-promise
v0.1.8
Published
Runs the provided command and returns a promise that resolves with array of lines of stdout. onError can be 'empty' to receive an empty array regardless of error, 'exit' (process) else reject the promise.
Downloads
30
Maintainers
Readme
esc-get-cmd-stdout-array-promise
Runs the provided command and returns a promise that resolves with array of lines of stdout when the command is finished.
My other NPM modules for running commands with real-time output
Interactive (run and use nano/vim/installers/htop etc)
esc-get-interactive-cmd-result-async
Capture std out/err with optional capture/filtering, error handling, live output passthru
esc-get-cmd-data-passthru-async
Install
npm install esc-get-cmd-stdout-array-promise
Use
I ran these commands in a terminal
/$ mkdir /tmp/foo
/$ cd /tmp/foo
/tmp/foo$ touch file1.txt file2.zip file3.mp3
/tmp/foo$ mkdir dir1 dir2import getCmdStdoutAP from 'esc-get-cmd-stdout-array-promise';
import colors from 'esc-colors'; // optional
( async () => {
const linesA = await getCmdStdoutAP('ls', { cwd:'/tmp/foo' }, colors);
console.log('linesA', linesA);
})(); const linesA = await getCmdStdoutAP('ls -la', { cwd:'/tmp/foo' }, colors);
console.log('linesA', linesA);Obviously ls isn't the best use for this module, but it's an example that anyone would be familiar with.
onError options
When the command that you run fails
- (default) - Promise rejects
onError:'exit'- Exit the processonError:'empty'- You receive[]onError:[]- You receive[]onError:['some','failsafe','output']- You receive['some','failsafe','output']
/tmp/foo$ printf 'APPLE\nORANGE\n' > fruit-selection.txt const linesA = await getCmdStdoutAP('cat fruit-selection.txt', { cwd:'/tmp/foo', onError:['GRAPE'] }, colors);
console.log('linesA', linesA);/tmp/foo$ rm fruit-selection.txtInspiration
Initially I liked zx but found it a nightmare to debug scripts run with it when something went wrong.
So I started using zx as a dependency and running my scripts with Node.JS.
Then I realized the only thing I like about zx is how you can run stuff, and I was even wrapping zx to turn stdout into an array, etc.
So I just made something better (for me).
This is a 1.2KiB alternative to the zx's 831KiB. I sleep better at night.
Project goals
- No dependencies
- No nonsense
- Reliable, no radical changes will ever happen.
- Small, simple, easy to audit, yourself
If I have ideas for something different, I'll make a new package rather than make breaking changes.
Notes
Have fun!
Say thanks
Star the repo https://github.com/softwarecreations/esc-get-cmd-stdout-array-promise
PR's or issues
Welcome
License
MIT
