0.7.0 • Published 6 years ago

spawn-stack v0.7.0

Weekly downloads
644
License
ISC
Repository
github
Last release
6 years ago

spawn-stack

npm version Build Status Build status Coverage Status

Spawn a new process using stack command with the given arguments

const spawnStack = require('spawn-stack');

spawnStack(['--version']).then(result => {
  result.output; //=> 'Version 1.7.1 x86_64 ...'
});

Installation

Make sure stack command is installed in your $PATH, then install spawn-stack via npm CLI.

npm install spawn-stack

API

const spawnStack = require('spawn-stack');

spawnStack(args , options)

args: Array<string> (command line arguments passed to stack command)
options: Object (execa options, with preferLocal defaulting to false)
Return: ChildProcess

It returns the same value as execa's:

a child_process instance, which is enhanced to also be a Promise for a result Object with stdout and stderr properties.

On POSIX, --allow-different-user flag will be automatically enabled to prevent file permission problems, unless --no-allow-different-user flag is explicitly provided.

process.platform !== 'win32'; //=> true

spawnStack(['--numeric-version']).then(result => {
  result.cmd; // 'stack --allow-different-user --numeric-version'
});

spawnStack(['--no-allow-different-user', '--numeric-version']).then(result => {
  result.cmd; // 'stack --no-allow-different-user --numeric-version'
});

The return value also has Symbol.observable method that returns a zen-observable instance passing each line of stderr to its Subscription. That means you can convert the return value into an Observable by using Observable.from.

const Observable = require('zen-observable');
const spawnStack = require('spawn-stack');

const cp = spawnStack(['setup', '8.2.1']);

Observable.from(cp).subscribe({
  next(line) {
    console.log(line);
    // stack will use a sandboxed GHC it installed ...
  },
  complete() {
    console.log('Done.')
  }
});

License

ISC License © 2017 - 2018 Shinnosuke Watanabe

0.7.2

5 years ago

0.7.1

5 years ago

0.7.0

6 years ago

0.6.0

6 years ago

0.5.0

6 years ago

0.4.0

6 years ago

0.3.1

6 years ago

0.3.1-0

6 years ago

0.3.0

7 years ago

0.2.0

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.0.1

7 years ago

0.0.0

7 years ago