Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

xsh

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

xsh

Some random NodeJS helper functions for shell execution

  • 0.4.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
13K
increased by41.11%
Maintainers
1
Weekly downloads
 
Created
Source

NPM version Build Status Dependency Status devDependency Status

xsh

Some random NodeJS helper functions for shell execution

Install

npm install xsh --save-dev

Usage

const xsh = require("xsh");

xsh.exec("echo hello");

API

Promise

You can set a custom Promise with:

xsh.Promise = require("bluebird");

Or set to the native Promise with:

xsh.Promise = null;

mkCmd

xsh.mkCmd(["echo", "hello"]);
xsh.mkCmd("echo", "hello");

Both return the string "echo hello".

exec

xsh.exec(shellCommand, [options], [callback] );

Use shelljs exec to execute shellCommand in async mode.

Arguments
  • shellCommand - can be combination of multiple strings and arrays. Array is joined with " " into strings. All final strings are joined with " ".

  • options - optional options

    • If it's either true or false, it sets silent flag for output to console.
    • It can also be an object that's passed to NodeJS exec.
      • For example, it can be {silent: true}
    • This can be the first, last, or second to last (if last is the callback) argument.
  • callback - optional, if provided, it will be called as follows:

callback( code !== 0 ? new Error("...") : undefined, { stdout, stderr } )

error.output is set to { stdout, stderr}. error.code is set to code.

Returns
  • With callback - The child object returned by exec

  • Without callback - An object with following:

{
  then, catch, promise, child, stdout, stderr
}

Where:

  • then - a wrapper function for calling the promise.then
  • catch - a wrapper function for calling the promise.catch
  • promise - rejects with the error or resolves with { stdout, stderr }
  • child - the child from exec
  • stdout and stderr - alias to child.stdout and child.stderr
exec Examples
  • With Promise:
xsh.exec("echo hello").then(r => { console.log("result", r.stdout); });
  • With options:
xsh.exec("pwd", {cwd: "/tmp"}).then(r => { console.log("result", r.stdout)})
  • With callback:
xsh.exec("echo hello", (r) => {console.log("result", r.stdout)})
  • shellCommand as a combination of strings and array of strings:
xsh.exec("echo", ["hello", "world"], {silent: false})

Would run shell command: echo hello world

envPath.addToFront

xsh.envPath.addToFront(path, [env]);

Add path to the front of process.env.PATH. If it already exists, then it is moved to the front.

If you don't want to operate on process.env you can pass in a second argument that's either an object or a string that's the path to change.

envPath.addToEnd

xsh.envPath.addToEnd(path, [env]);

Add path to the end of process.env.PATH. If it already exists, then it is moved to the end.

If you don't want to operate on process.env you can pass in a second argument that's either an object or a string that's the path to change.

envPath.add

xsh.envPath.add(path, [env]);

If path doesn't exist in process.env.PATH then it's added to the end.

If you don't want to operate on process.env you can pass in a second argument that's either an object or a string that's the path to change.

$

An instance of shelljs.

const xsh = require("xsh");
xsh.$.cd("/tmp");

FAQs

Package last updated on 18 Jul 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc