Skip to content
/ execr Public

Node ease-of-use exec wrapper. Simple and fluent API intended for short-running tasks for CI/CD scripting

Notifications You must be signed in to change notification settings

markjm/execr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Execr

Simple node process management tool for short-lived processes

Execr is intended to simplify the child_process spawn commands for use in the 99% of cases, where you don't want to worry about the specifics of managing the process.

Execr is not intended to manage long-running processes.

Install

$ yarn add @markjm/execr

Usage

const { exec, execAsync, wrap } = require('@markjm/execr');

// Sync version to quickly grab
const branch = exec("git", ["branch"]).stdout;

// Async version
execAsync("yarn", ["workspaces", "info"]).then({ stdout } => console.log(stdout));

// Wrap a command for simple access to very nested sub-commands.
const az = wrap("az");
az.artifacts.universal.download(["--file", "my-file"]);

// Actually, this will take a while, lets make it async...
const az = wrapAsync("az");
az.artifacts.universal.download(["--file", "my-file"]).then({ status } => console.log(status));

// If a failure is expected...
const errMsg = exec("git", ["push"], { failOnError: false }).stderr;

// Memoize expensive calls...
const files = exec("git", ["ls-files"], { memoize: true }).stdout.split("\n");

About

Node ease-of-use exec wrapper. Simple and fluent API intended for short-running tasks for CI/CD scripting

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published