ls and cd improved, cat added
This commit is contained in:
parent
e6e55ab6fd
commit
25c03b8caf
4 changed files with 76 additions and 13 deletions
34
blash.js
34
blash.js
|
@ -206,10 +206,7 @@ function blash ()
|
|||
}
|
||||
}
|
||||
|
||||
if ( dirs.length == 0 )
|
||||
{
|
||||
this.cmdOut.innerHTML = '<br/>Sorry, no matches for `' + this.prompt.value + "'";
|
||||
} else if ( dirs.length == 1 ) {
|
||||
if ( dirs.length == 1 ) {
|
||||
this.prompt.value = this.prompt.value.replace ( arg, dirs[0].name + (( dirs[0].type == 'directory' ) ? '/' : '' ));
|
||||
} else {
|
||||
this.cmdOut.innerHTML = '';
|
||||
|
@ -301,8 +298,35 @@ function blash ()
|
|||
arg = this.path + '/' + arg;
|
||||
}
|
||||
|
||||
arg = arg.replace ( /\/*$/, '' );
|
||||
arg = arg.replace ( /\/+/, '/' );
|
||||
|
||||
if ( arg != '/' )
|
||||
{
|
||||
arg = arg.replace ( /\/*$/, '' );
|
||||
}
|
||||
|
||||
while ( arg.match ( /^(.+?\/?\.\.)/ ))
|
||||
{
|
||||
var part = RegExp.$1;
|
||||
|
||||
if ( arg.match ( /^(.+?)\/?\.\./ ))
|
||||
{
|
||||
if ( RegExp.$1 == '/' )
|
||||
{
|
||||
arg = arg.replace ( part, '/' );
|
||||
} else {
|
||||
part.match ( /^(.*)\/[^\/]*\/\.\..*$/ );
|
||||
var sup = RegExp.$1;
|
||||
arg = arg.replace ( part, sup );
|
||||
|
||||
if ( arg.length == 0 )
|
||||
{
|
||||
arg = '/';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return arg;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -67,6 +67,7 @@
|
|||
],
|
||||
|
||||
"commands" : [
|
||||
"cat",
|
||||
"cd",
|
||||
"ls",
|
||||
"man",
|
||||
|
|
45
commands/cat.json
Normal file
45
commands/cat.json
Normal file
|
@ -0,0 +1,45 @@
|
|||
{
|
||||
"name" : "cat",
|
||||
|
||||
"info" : {
|
||||
"syntax" : "cat <file>",
|
||||
"brief" : "Show the content of a page",
|
||||
},
|
||||
|
||||
"action" : function ( arg )
|
||||
{
|
||||
var out = '';
|
||||
|
||||
if ( !arg || arg.length == 0 )
|
||||
{
|
||||
return "Argument required<br/>\n";
|
||||
}
|
||||
|
||||
var found = false;
|
||||
var dir = shell.json.directories;
|
||||
arg = shell.expandPath ( arg );
|
||||
|
||||
for ( var i=0; i < dir.length && !found; i++ )
|
||||
{
|
||||
if ( dir[i].path == arg )
|
||||
{
|
||||
found = true;
|
||||
|
||||
if ( dir[i].type == 'directory' )
|
||||
{
|
||||
return "cat: " + dir[i].path + ": Is a directory<br/>\n";
|
||||
} else {
|
||||
if ( dir[i].href )
|
||||
{
|
||||
window.open ( dir[i].href );
|
||||
} else if ( dir[i].content ) {
|
||||
return dir[i].content + "<br/>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return out;
|
||||
},
|
||||
}
|
||||
|
|
@ -15,15 +15,8 @@
|
|||
return "Parameter expected<br/>\n";
|
||||
}
|
||||
|
||||
arg = arg.replace ( /\/$/, '' );
|
||||
|
||||
if ( arg.match ( /^[^\/]/ ))
|
||||
{
|
||||
arg = this.path + '/' + arg;
|
||||
arg = arg.replace ( /\/+/, '/' );
|
||||
}
|
||||
|
||||
var found = false;
|
||||
arg = shell.expandPath ( arg );
|
||||
|
||||
for ( var i=0; i < shell.json.directories.length && !found; i++ )
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue