hhpack/process

Process utility library for Hack

Installs: 244

Dependents: 1

Suggesters: 0

Security: 0

Stars: 4

Watchers: 1

Forks: 0

Open Issues: 2

Language:Shell

1.6.0 2019-04-15 03:39 UTC

README

Latest Stable Version CircleCI Dependency Status License

Basic usage

Start the process, it is an example to wait until the end.
information of stdout and stderr are output to the buffer.

use HHPack\Process;

<<__EntryPoint>>
async function main() : Awaitable<noreturn>
{
  $result = await Process\exec('hh_client restart');
  $result->stdout()->display();
  $result->stderr()->display();

  $result = await Process\exec('hh_client check --json');
  $result->display();

  exit(0);
}

Execution of the script

If you want to run the script, you can run in execFile function.

use HHPack\Process;

<<__EntryPoint>>
async function main() : Awaitable<noreturn>
{
  $result = await Process\execFile('/path/to/example.hh', [ 'a', 'b' ]);
  $result->stdout()->display();
  $result->stderr()->display();

  exit(0);
}

Manual control of the process

You can use the spawn function to generate a new child process.
To wait for the generated child process to finish use the wait method.

use HHPack\Process;
use HHPack\Process\ProcessOptions;

<<__EntryPoint>>
async function pipe_example() : Awaitable<noreturn>
{
  $options = new ProcessOptions();
  $options->stdout(new Stdout());
  $options->stderr(new Stderr());

  using ($p = Process\spawn('hh_client restart', [], $options)) {
    await $p->wait();
  }

  exit(0);
}

Run the test

You can run the test with the following command.

composer install
composer test