| var common = require('./common'); |
| var fs = require('fs'); |
| var path = require('path'); |
| |
| //@ |
| //@ ### 'string'.to(file) |
| //@ |
| //@ Examples: |
| //@ |
| //@ ```javascript |
| //@ cat('input.txt').to('output.txt'); |
| //@ ``` |
| //@ |
| //@ Analogous to the redirection operator `>` in Unix, but works with JavaScript strings (such as |
| //@ those returned by `cat`, `grep`, etc). _Like Unix redirections, `to()` will overwrite any existing file!_ |
| 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.toString(), 'utf8'); |
| } catch(e) { |
| common.error('could not write to file (code '+e.code+'): '+file, true); |
| } |
| } |
| module.exports = _to; |