229 lines
5.5 KiB
JavaScript
229 lines
5.5 KiB
JavaScript
|
//
|
||
|
// ShellJS
|
||
|
// Unix shell commands on top of Node's API
|
||
|
//
|
||
|
// Copyright (c) 2012 Artur Adib
|
||
|
// http://github.com/arturadib/shelljs
|
||
|
//
|
||
|
|
||
|
var common = require('./src/common');
|
||
|
|
||
|
|
||
|
//@
|
||
|
//@ All commands run synchronously, unless otherwise stated.
|
||
|
//@ All commands accept standard bash globbing characters (`*`, `?`, etc.),
|
||
|
//@ compatible with the [node glob module](https://github.com/isaacs/node-glob).
|
||
|
//@
|
||
|
//@ For less-commonly used commands and features, please check out our [wiki
|
||
|
//@ page](https://github.com/shelljs/shelljs/wiki).
|
||
|
//@
|
||
|
|
||
|
//@include ./src/cd
|
||
|
var _cd = require('./src/cd');
|
||
|
exports.cd = common.wrap('cd', _cd, {idx: 1});
|
||
|
|
||
|
//@include ./src/pwd
|
||
|
var _pwd = require('./src/pwd');
|
||
|
exports.pwd = common.wrap('pwd', _pwd);
|
||
|
|
||
|
//@include ./src/ls
|
||
|
var _ls = require('./src/ls');
|
||
|
exports.ls = common.wrap('ls', _ls, {idx: 1});
|
||
|
|
||
|
//@include ./src/find
|
||
|
var _find = require('./src/find');
|
||
|
exports.find = common.wrap('find', _find, {idx: 1});
|
||
|
|
||
|
//@include ./src/cp
|
||
|
var _cp = require('./src/cp');
|
||
|
exports.cp = common.wrap('cp', _cp, {idx: 1});
|
||
|
|
||
|
//@include ./src/rm
|
||
|
var _rm = require('./src/rm');
|
||
|
exports.rm = common.wrap('rm', _rm, {idx: 1});
|
||
|
|
||
|
//@include ./src/mv
|
||
|
var _mv = require('./src/mv');
|
||
|
exports.mv = common.wrap('mv', _mv, {idx: 1});
|
||
|
|
||
|
//@include ./src/mkdir
|
||
|
var _mkdir = require('./src/mkdir');
|
||
|
exports.mkdir = common.wrap('mkdir', _mkdir, {idx: 1});
|
||
|
|
||
|
//@include ./src/test
|
||
|
var _test = require('./src/test');
|
||
|
exports.test = common.wrap('test', _test);
|
||
|
|
||
|
//@include ./src/cat
|
||
|
var _cat = require('./src/cat');
|
||
|
exports.cat = common.wrap('cat', _cat, {idx: 1});
|
||
|
|
||
|
//@include ./src/head
|
||
|
var _head = require('./src/head');
|
||
|
exports.head = common.wrap('head', _head, {idx: 1});
|
||
|
|
||
|
//@include ./src/tail
|
||
|
var _tail = require('./src/tail');
|
||
|
exports.tail = common.wrap('tail', _tail, {idx: 1});
|
||
|
|
||
|
// The below commands have been moved to common.ShellString(), and are only here
|
||
|
// for generating the docs
|
||
|
//@include ./src/to
|
||
|
//@include ./src/toEnd
|
||
|
|
||
|
//@include ./src/sed
|
||
|
var _sed = require('./src/sed');
|
||
|
exports.sed = common.wrap('sed', _sed, {idx: 3});
|
||
|
|
||
|
//@include ./src/sort
|
||
|
var _sort = require('./src/sort');
|
||
|
exports.sort = common.wrap('sort', _sort, {idx: 1});
|
||
|
|
||
|
//@include ./src/grep
|
||
|
var _grep = require('./src/grep');
|
||
|
exports.grep = common.wrap('grep', _grep, {idx: 2});
|
||
|
|
||
|
//@include ./src/which
|
||
|
var _which = require('./src/which');
|
||
|
exports.which = common.wrap('which', _which);
|
||
|
|
||
|
//@include ./src/echo
|
||
|
var _echo = require('./src/echo');
|
||
|
exports.echo = common.wrap('echo', _echo);
|
||
|
|
||
|
//@include ./src/dirs
|
||
|
var _dirs = require('./src/dirs').dirs;
|
||
|
exports.dirs = common.wrap('dirs', _dirs, {idx: 1});
|
||
|
var _pushd = require('./src/dirs').pushd;
|
||
|
exports.pushd = common.wrap('pushd', _pushd, {idx: 1});
|
||
|
var _popd = require('./src/dirs').popd;
|
||
|
exports.popd = common.wrap('popd', _popd, {idx: 1});
|
||
|
|
||
|
//@include ./src/ln
|
||
|
var _ln = require('./src/ln');
|
||
|
exports.ln = common.wrap('ln', _ln, {idx: 1});
|
||
|
|
||
|
//@
|
||
|
//@ ### exit(code)
|
||
|
//@ Exits the current process with the given exit code.
|
||
|
exports.exit = process.exit;
|
||
|
|
||
|
//@
|
||
|
//@ ### env['VAR_NAME']
|
||
|
//@ Object containing environment variables (both getter and setter). Shortcut to process.env.
|
||
|
exports.env = process.env;
|
||
|
|
||
|
//@include ./src/exec
|
||
|
var _exec = require('./src/exec');
|
||
|
exports.exec = common.wrap('exec', _exec, {notUnix:true});
|
||
|
|
||
|
//@include ./src/chmod
|
||
|
var _chmod = require('./src/chmod');
|
||
|
exports.chmod = common.wrap('chmod', _chmod, {idx: 1});
|
||
|
|
||
|
//@include ./src/touch
|
||
|
var _touch = require('./src/touch');
|
||
|
exports.touch = common.wrap('touch', _touch, {idx: 1});
|
||
|
|
||
|
//@include ./src/set
|
||
|
var _set = require('./src/set');
|
||
|
exports.set = common.wrap('set', _set);
|
||
|
|
||
|
|
||
|
//@
|
||
|
//@ ## Non-Unix commands
|
||
|
//@
|
||
|
|
||
|
//@include ./src/tempdir
|
||
|
var _tempDir = require('./src/tempdir');
|
||
|
exports.tempdir = common.wrap('tempdir', _tempDir);
|
||
|
|
||
|
//@include ./src/error
|
||
|
var _error = require('./src/error');
|
||
|
exports.error = _error;
|
||
|
|
||
|
//@include ./src/common
|
||
|
exports.ShellString = common.ShellString;
|
||
|
|
||
|
//@
|
||
|
//@ ### Pipes
|
||
|
//@
|
||
|
//@ Examples:
|
||
|
//@
|
||
|
//@ ```javascript
|
||
|
//@ grep('foo', 'file1.txt', 'file2.txt').sed(/o/g, 'a').to('output.txt');
|
||
|
//@ echo('files with o\'s in the name:\n' + ls().grep('o'));
|
||
|
//@ cat('test.js').exec('node'); // pipe to exec() call
|
||
|
//@ ```
|
||
|
//@
|
||
|
//@ Commands can send their output to another command in a pipe-like fashion.
|
||
|
//@ `sed`, `grep`, `cat`, `exec`, `to`, and `toEnd` can appear on the right-hand
|
||
|
//@ side of a pipe. Pipes can be chained.
|
||
|
|
||
|
//@
|
||
|
//@ ## Configuration
|
||
|
//@
|
||
|
|
||
|
exports.config = common.config;
|
||
|
|
||
|
//@
|
||
|
//@ ### config.silent
|
||
|
//@
|
||
|
//@ Example:
|
||
|
//@
|
||
|
//@ ```javascript
|
||
|
//@ var sh = require('shelljs');
|
||
|
//@ var silentState = sh.config.silent; // save old silent state
|
||
|
//@ sh.config.silent = true;
|
||
|
//@ /* ... */
|
||
|
//@ sh.config.silent = silentState; // restore old silent state
|
||
|
//@ ```
|
||
|
//@
|
||
|
//@ Suppresses all command output if `true`, except for `echo()` calls.
|
||
|
//@ Default is `false`.
|
||
|
|
||
|
//@
|
||
|
//@ ### config.fatal
|
||
|
//@
|
||
|
//@ Example:
|
||
|
//@
|
||
|
//@ ```javascript
|
||
|
//@ require('shelljs/global');
|
||
|
//@ config.fatal = true; // or set('-e');
|
||
|
//@ cp('this_file_does_not_exist', '/dev/null'); // throws Error here
|
||
|
//@ /* more commands... */
|
||
|
//@ ```
|
||
|
//@
|
||
|
//@ If `true` the script will throw a Javascript error when any shell.js
|
||
|
//@ command encounters an error. Default is `false`. This is analogous to
|
||
|
//@ Bash's `set -e`
|
||
|
|
||
|
//@
|
||
|
//@ ### config.verbose
|
||
|
//@
|
||
|
//@ Example:
|
||
|
//@
|
||
|
//@ ```javascript
|
||
|
//@ config.verbose = true; // or set('-v');
|
||
|
//@ cd('dir/');
|
||
|
//@ ls('subdir/');
|
||
|
//@ ```
|
||
|
//@
|
||
|
//@ Will print each command as follows:
|
||
|
//@
|
||
|
//@ ```
|
||
|
//@ cd dir/
|
||
|
//@ ls subdir/
|
||
|
//@ ```
|
||
|
|
||
|
//@
|
||
|
//@ ### config.globOptions
|
||
|
//@
|
||
|
//@ Example:
|
||
|
//@
|
||
|
//@ ```javascript
|
||
|
//@ config.globOptions = {nodir: true};
|
||
|
//@ ```
|
||
|
//@
|
||
|
//@ Use this value for calls to `glob.sync()` instead of the default options.
|