mirror of
https://codeberg.org/TicklishHoneyBee/CLIte.git
synced 2026-03-11 09:04:37 +00:00
a few fixes and improvements to shell script parsing
This commit is contained in:
parent
c56fe770b9
commit
c52058dacb
2 changed files with 17 additions and 9 deletions
|
|
@ -86,7 +86,9 @@ return Object.create({
|
|||
case ' ':
|
||||
if (!q && !c) {
|
||||
if (!wasq && s[s.length-1] == ';') {
|
||||
parts.push(s.substring(0,s.length-1));
|
||||
var ss = s.substring(0,s.length-1);
|
||||
if (ss.length > 0)
|
||||
parts.push(ss);
|
||||
parts.push(';');
|
||||
}else{
|
||||
parts.push(s);
|
||||
|
|
@ -104,7 +106,9 @@ return Object.create({
|
|||
}
|
||||
if (s.length > 0) {
|
||||
if (!wasq && s[s.length-1] == ';') {
|
||||
parts.push(s.substring(0,s.length-1));
|
||||
var ss = s.substring(0,s.length-1);
|
||||
if (ss.length > 0)
|
||||
parts.push(ss);
|
||||
parts.push(';');
|
||||
}else{
|
||||
parts.push(s);
|
||||
|
|
|
|||
|
|
@ -149,6 +149,7 @@ clite.commands.load('sh',function(args,env,io) {
|
|||
},
|
||||
internal:{
|
||||
lines:[],
|
||||
scrpt:null,
|
||||
parseFile:function(f) {
|
||||
var fn = clite.resolvePath(f);
|
||||
if (fn == null) {
|
||||
|
|
@ -172,6 +173,7 @@ clite.commands.load('sh',function(args,env,io) {
|
|||
parser.run();
|
||||
return;
|
||||
}
|
||||
parser.internal.script = '';
|
||||
parser.internal.lines = data.split('\n');
|
||||
if (parser.internal.lines.length < 1) {
|
||||
parser.run();
|
||||
|
|
@ -182,15 +184,16 @@ clite.commands.load('sh',function(args,env,io) {
|
|||
parseLine:function() {
|
||||
var l = parser.internal.lines.shift();
|
||||
if (l == null) {
|
||||
parser.run();
|
||||
parser.internal.exec();
|
||||
return;
|
||||
}
|
||||
if (l[0] == '#') {
|
||||
parser.internal.parseLine();
|
||||
return;
|
||||
}
|
||||
exec.setCommand(l);
|
||||
exec.run(parser.internal.parseLine);
|
||||
if (l[0] != '#')
|
||||
parser.internal.script += l+'; ';
|
||||
parser.internal.parseLine();
|
||||
},
|
||||
exec:function() {
|
||||
exec.setCommand(parser.internal.script);
|
||||
exec.run(parser.run);
|
||||
}
|
||||
},
|
||||
exit:function() {
|
||||
|
|
@ -617,6 +620,7 @@ clite.commands.load('sh',function(args,env,io) {
|
|||
fault = true;
|
||||
return;
|
||||
}
|
||||
c.args[0] = c.args[0].trim();
|
||||
c.path = resolvePATH(c.args[0]);
|
||||
});
|
||||
if (fault) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue