{ "name" : "cd", "info" : { "syntax" : "cd <directory>", "brief" : "Change the current directory to the specified one", }, "action" : function ( arg ) { var out = ''; if ( !arg || arg.length == 0 ) { return "Parameter expected
\n"; } arg = arg.replace ( /\/$/, '' ); if ( arg.match ( /^[^\/]/ )) { arg = this.path + '/' + arg; arg = arg.replace ( /\/+/, '/' ); } var found = false; for ( var i=0; i < shell.json.directories.length && !found; i++ ) { if ( shell.json.directories[i].path == arg ) { found = true; if ( shell.json.directories[i].type != 'directory' ) { return "cd: not a directory: " + arg + "
\n"; } } } if ( !found ) { return "cd: no such file or directory: " + arg + "
\n"; } shell.path = arg; return out; }, }