Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Make your ShellJS commands explicit and get a beautiful output
JavaScript
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
.gitignore
LICENSE
README.md
example.js
index.js
package.json
test.js

README.md

ShoutJS

Make your ShellJS commands explicit and get a beautiful output.

Example

Get this:

With this:

var shout = require('shoutjs');

shout.mkdir('bleach');
shout.to('bleach/ichigo', 'Bankai!');
shout.rm('-rf', 'bleach');

Commands

Supported ShellJS commands are: cp, rm, mv, mkdir, to.

ShoutJS only wraps ShellJS commands which change the filesystem. For usage information, you can go here ShellJS.

There's only to which differs from ShellJS:

var shell = require('shelljs/global'),
    shout = require('shoutjs');

'Bankai!'.to('file');        // ShellJS
shout.to('file', 'Bankai!'); // ShoutJS

Theming

ShoutJS supports theming through Logan. So it's possible to customize ShoutJS output pretty much the way you want.

Here is the default theme:

// Default theme
shout.logan.set({
  cp    : ['  copy   % to %', 'cyan . cyan .'],
  rm    : ['  remove %     ', 'red          '],
  mv    : ['  move   % to %', 'cyan . cyan .'],
  mkdir : ['  create %     ', 'cyan         '],
  to    : ['  create %     ', 'cyan         '],
  exec  : ['  exec   %     ', 'blue .       ']
});

To override it:

//  A bit more old fashioned theme...
shout.logan.set({
  cp    : ['cp % %', 'grey'],
  rm    : ['rm %  ', 'grey'],
  // ...
});

Adding new messages

In many cases, you may want to log more than ShellJS commands for your users.
The recommanded way is to use Logan.

Here's an example:

var shout = require('shoutjs'),
    logan = require('logan');

logan.set({
  info: ['  info %', 'yellow']
});

logan.info('starting script...');
shout.rm('file.txt');
logan.info('done');

Configuration

You can disable ShoutJS output using logan.silent option.

shout.logan.silent = true;
shout.to('ichigo.txt', 'Bankai!'); // No output

Issues

Have a bug or missing a new command introduced in ShellJS? Please create an issue here on GitHub!

Themes

If you've created a theme for ShellJS feel free to drop me a message @typicode.

Something went wrong with that request. Please try again.