An open API service indexing awesome lists of open source software.

https://github.com/waitingsong/rxrunscript


https://github.com/waitingsong/rxrunscript

rxjs script spawn

Last synced: 10 months ago
JSON representation

Awesome Lists containing this project

README

          

# RxRunScript
Run shell script or command in Node.js child process, Output `Observable`

[![Version](https://img.shields.io/npm/v/rxrunscript.svg)](https://www.npmjs.com/package/rxrunscript)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Build Status](https://travis-ci.org/waitingsong/rxrunscript.svg?branch=master)](https://travis-ci.org/waitingsong/rxrunscript)
[![Build status](https://ci.appveyor.com/api/projects/status/v5jt9imw2519nsax/branch/master?svg=true)](https://ci.appveyor.com/project/waitingsong/rxrunscript/branch/master)
[![Coverage Status](https://coveralls.io/repos/github/waitingsong/rxrunscript/badge.svg?branch=master)](https://coveralls.io/github/waitingsong/rxrunscript?branch=master)

## Installing
```bash
$ npm install rxrunscript
```

## Usage
```ts
import { OutputRow, run, take } from 'rxrunscript'

run('openssl version')
.pipe(
take(1), // assume all output in one buffer
)
.subscribe({
next: (row) => {
console.log(row.data.toString()),
},
error: (err) => {
console.error(err),
},
})

// exec shell file
run('./test/openssl.sh')
.subscribe({
next: (row) => console.log(buf.toString()),
})

import { reduce } from 'rxjs'

// win32
run('tasklist')
.pipe(
reduce((acc: Buffer[], curr: OutputRow) => {
if (typeof curr.exitCode === 'undefined') {
acc.push(curr)
}
return acc
}, []),
)
.subscribe(
arr => console.log(Buffer.concat(arr).toString()),
err => console.error(err),
)

// run cmd file
run('./test/prepare.cmd')
.subscribe(
row => console.log(row.data.toString()),
)

```

## License
[MIT](LICENSE)

### Languages
- [English](README.md)
- [中文](README.zh-CN.md)