mirror of
https://github.com/shelljs/shelljs.git
synced 2026-01-18 16:03:37 +00:00
29 lines
699 B
JavaScript
29 lines
699 B
JavaScript
var fs = require('fs');
|
|
var common = require('./common');
|
|
|
|
//@
|
|
//@ ### cd([dir])
|
|
//@ Changes to directory `dir` for the duration of the script. Changes to home
|
|
//@ directory if no argument is supplied.
|
|
function _cd(options, dir) {
|
|
if (!dir)
|
|
dir = common.getUserHome();
|
|
|
|
if (dir === '-') {
|
|
if (!common.state.previousDir)
|
|
common.error('could not find previous directory');
|
|
else
|
|
dir = common.state.previousDir;
|
|
}
|
|
|
|
if (!fs.existsSync(dir))
|
|
common.error('no such file or directory: ' + dir);
|
|
|
|
if (!fs.statSync(dir).isDirectory())
|
|
common.error('not a directory: ' + dir);
|
|
|
|
common.state.previousDir = process.cwd();
|
|
process.chdir(dir);
|
|
}
|
|
module.exports = _cd;
|