mirror of
https://github.com/shelljs/shelljs.git
synced 2026-01-18 16:03:37 +00:00
This configures the eslint config to allow ES6 features. This fixes some lint errors caught in the new config, but this mostly suppresses new warnings.
39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
var fs = require('fs');
|
|
var path = require('path');
|
|
var common = require('./common');
|
|
|
|
common.register('to', _to, {
|
|
pipeOnly: true,
|
|
wrapOutput: false,
|
|
});
|
|
|
|
//@
|
|
//@ ### ShellString.prototype.to(file)
|
|
//@
|
|
//@ Examples:
|
|
//@
|
|
//@ ```javascript
|
|
//@ cat('input.txt').to('output.txt');
|
|
//@ ```
|
|
//@
|
|
//@ Analogous to the redirection operator `>` in Unix, but works with
|
|
//@ `ShellStrings` (such as those returned by `cat`, `grep`, etc.). _Like Unix
|
|
//@ redirections, `to()` will overwrite any existing file!_ Returns the same
|
|
//@ [ShellString](#shellstringstr) this operated on, to support chaining.
|
|
function _to(options, file) {
|
|
if (!file) common.error('wrong arguments');
|
|
|
|
if (!fs.existsSync(path.dirname(file))) {
|
|
common.error('no such file or directory: ' + path.dirname(file));
|
|
}
|
|
|
|
try {
|
|
fs.writeFileSync(file, this.stdout || this.toString(), 'utf8');
|
|
return this;
|
|
} catch (e) {
|
|
/* istanbul ignore next */
|
|
common.error('could not write to file (code ' + e.code + '): ' + file, { continue: true });
|
|
}
|
|
}
|
|
module.exports = _to;
|