{
"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;
},
}