convert format of programs to always have main(argc,argv)

This commit is contained in:
Lisa Milne 2023-12-19 14:36:09 +10:00
parent fe972ddd11
commit 7071a63dfa
4 changed files with 744 additions and 671 deletions

File diff suppressed because it is too large Load diff

View file

@ -6,7 +6,9 @@ clite.commands.load('sh',function(args,env,io) {
var stdlib = io.include('stdlib');
var term = io.include('term');
var clite = io.include('clite');
var has_exited = false;
var macro = {
clear:function(args,io) {
term.clear();
@ -1073,13 +1075,13 @@ Options:
stdio.read(io.stdin,inputProcess);
}
function main(args) {
function main(argc,argv) {
var f = null;
var s = false;
for (var i=1; i<args.length; i++) {
if (args[i][0] == '-') {
for (var j=1; j<args[i].length; j++) {
switch (args[i][j]) {
for (var i=1; i<argc; i++) {
if (argv[i][0] == '-') {
for (var j=1; j<argv[i].length; j++) {
switch (argv[i][j]) {
case '?':
help();
return 0;
@ -1088,25 +1090,25 @@ Options:
s = true;
break;
default:
stdio.fprintf(io.stderr,'unknown argument -%c\n',args[i][j]);
stdio.fprintf(io.stderr,'unknown argument -%c\n',argv[i][j]);
}
}
}else if (f == null) {
f = clite.resolvePath(args[i]);
f = clite.resolvePath(argv[i]);
}else{
stdio.fprintf(io.stderr,'unknown argument - %s\n',args[i]);
stdio.fprintf(io.stderr,'unknown argument - %s\n',argv[i]);
}
}
// if args[0] isn't the shell itself, then we're running a shell script
if (!f && args[0] != '/bin/sh' && args[0] != 'sh') {
f = clite.resolvePath(args[0]);
// if argv[0] isn't the shell itself, then we're running a shell script
if (!f && argv[0] != '/bin/sh' && argv[0] != 'sh') {
f = clite.resolvePath(argv[0]);
if (!f)
return 1;
// make the arguments readable by the shell script
env['#'] = args.length.toString();
for (var i=0; i<args.length; i++) {
env[i.toString()] = args[i];
env['#'] = argc.toString();
for (var i=0; i<argc; i++) {
env[i.toString()] = argv[i];
}
}
@ -1136,7 +1138,7 @@ Options:
return null;
}
return main(args);
return main(args.length,args);
});
}

View file

@ -113,19 +113,19 @@ Options:
}
}
function main(args) {
function main(argc,argv) {
var user = 'root';
var shellnext = false;
var accept = false;
for (var i=1; i<args.length; i++) {
for (var i=1; i<argc; i++) {
if (shellnext == true) {
shell = args[i];
shell = argv[i];
shellnext = false;
}else if (args[i] == '-') {
}else if (argv[i] == '-') {
preserve = false;
}else if (args[i][0] == '-') {
for (var j=1; j<args[i].length; j++) {
switch (args[i][j]) {
}else if (argv[i][0] == '-') {
for (var j=1; j<argv[i].length; j++) {
switch (argv[i][j]) {
case '?':
help();
return 0;
@ -143,11 +143,11 @@ Options:
accept = true;
break;
default:
stdio.fprintf(io.stderr,'unknown argument: -%c\n',args[i][j]);
stdio.fprintf(io.stderr,'unknown argument: -%c\n',argv[i][j]);
}
}
}else{
user = args[i];
user = argv[i];
}
}
@ -182,7 +182,7 @@ Options:
return null;
}
return main(args);
return main(args.length,args);
},true);
clite.commands.load('user',function(args,env,io) {
@ -378,21 +378,21 @@ Options:
}
}
function main(args) {
function main(argc,argv) {
let add = false;
let rem = false;
let shellnext = false;
let groupnext = false;
for (var i=1; i<args.length; i++) {
for (var i=1; i<argc; i++) {
if (shellnext == true) {
shell = args[i];
shell = argv[i];
shellnext = false;
}else if (groupnext == true) {
group = args[i];
group = argv[i];
groupnext = false;
}else if (args[i][0] == '-') {
for (var j=1; j<args[i].length; j++) {
switch (args[i][j]) {
}else if (argv[i][0] == '-') {
for (var j=1; j<argv[i].length; j++) {
switch (argv[i][j]) {
case '?':
help();
return 0;
@ -410,11 +410,11 @@ Options:
groupnext = true;
break;
default:
stdio.fprintf(io.stderr,'unknown argument: -%c\n',args[i][j]);
stdio.fprintf(io.stderr,'unknown argument: -%c\n',argv[i][j]);
}
}
}else{
user = args[i];
user = argv[i];
}
}
@ -443,7 +443,7 @@ Options:
return 1;
}
return main(args);
return main(args.length,args);
},true);
clite.commands.load('login',function(args,env,io) {
@ -555,22 +555,22 @@ Options:
stdio.write(io.stderr,'internal error\n');
}
function main(args) {
function main(argc,argv) {
let user = null;
for (var i=1; i<args.length; i++) {
if (args[i][0] == '-') {
for (var j=1; j<args[i].length; j++) {
switch (args[i][j]) {
for (var i=1; i<argc; i++) {
if (argv[i][0] == '-') {
for (var j=1; j<argv[i].length; j++) {
switch (argv[i][j]) {
case '?':
help();
return 0;
break;
default:
stdio.fprintf(io.stderr,'unknown argument: -%c\n',args[i][j]);
stdio.fprintf(io.stderr,'unknown argument: -%c\n',argv[i][j]);
}
}
}else{
user = args[i];
user = argv[i];
}
}
@ -596,7 +596,7 @@ Options:
return null;
}
return main(args);
return main(args.length,args);
});
clite.commands.load('cookie',function(args,env,io) {
@ -643,14 +643,14 @@ Options:
}
}
function main(args) {
function main(argc,argv) {
let accept = false;
let reject = false;
let check = false;
for (var i=1; i<args.length; i++) {
if (args[i][0] == '-') {
for (var j=1; j<args[i].length; j++) {
switch (args[i][j]) {
for (var i=1; i<argc; i++) {
if (argv[i][0] == '-') {
for (var j=1; j<argv[i].length; j++) {
switch (argv[i][j]) {
case '?':
help();
return 0;
@ -665,11 +665,11 @@ Options:
reject = true;
break;
default:
stdio.fprintf(io.stderr,'unknown argument: -%c\n',args[i][j]);
stdio.fprintf(io.stderr,'unknown argument: -%c\n',argv[i][j]);
}
}
}else{
stdio.fprintf(io.stderr,'unknown argument: %s\n',args[i]);
stdio.fprintf(io.stderr,'unknown argument: %s\n',argv[i]);
}
}
@ -699,7 +699,7 @@ Options:
return null;
}
return main(args);
return main(args.length,args);
});
clite.commands.load('passwd',function(args,env,io) {
@ -776,21 +776,21 @@ Options:
}
}
function main(args) {
for (var i=1; i<args.length; i++) {
if (args[i][0] == '-') {
for (var j=1; j<args[i].length; j++) {
switch (args[i][j]) {
function main(argc,argv) {
for (var i=1; i<argc; i++) {
if (argv[i][0] == '-') {
for (var j=1; j<argv[i].length; j++) {
switch (argv[i][j]) {
case '?':
help();
return 0;
break;
default:
stdio.fprintf(io.stderr,'unknown argument: -%c\n',args[i][j]);
stdio.fprintf(io.stderr,'unknown argument: -%c\n',argv[i][j]);
}
}
}else{
user = args[i];
user = argv[i];
}
}
@ -822,7 +822,7 @@ Options:
return null;
}
return main(args);
return main(args.length,args);
});
}

View file

@ -62,28 +62,6 @@ Options:
`);
}
for (var i=1; i<args.length; i++) {
if (args[i][0] == '-') {
for (var j=1; j<args[i].length; j++) {
switch (args[i][j]) {
case '?':
help();
return 0;
break;
default:
stdio.fprintf(io.stderr,'unknown argument: -%c\n',args[i][j]);
}
}
}else if (file == null) {
file = clite.resolvePath(args[i],false);
}else{
stdio.fprintf(io.stderr,'unknown argument: %s\n',args[i]);
}
}
if (!stdio.isatty(io.stdin))
return 1;
function calculateBottomLine() {
bottomLine = lines.length;
var r = rows;
@ -274,24 +252,6 @@ Options:
changed = true;
}
if (file == null) {
stdio.write(io.stderr,'no file specified\n');
return 1;
}
var fd = stdio.open(file,stdio.flags.O_RDONLY|stdio.flags.O_CREAT,prepFile);
if (!fd) {
stdio.fprintf(io.stderr,'could not open file: %s\n',file);
return 1;
}
curses.initscr();
cols = curses.getmaxx();
rows = curses.getmaxy();
curses.cbreak();
curses.noecho();
curses.printw('Loading...');
function input(key) {
if (mode == 0) { // view mode
//message = '';
@ -405,9 +365,53 @@ Options:
curses.getch(input);
}
curses.getch(input);
function main(argc,argv) {
for (var i=1; i<argc; i++) {
if (argv[i][0] == '-') {
for (var j=1; j<argv[i].length; j++) {
switch (argv[i][j]) {
case '?':
help();
return 0;
break;
default:
stdio.fprintf(io.stderr,'unknown argument: -%c\n',argv[i][j]);
}
}
}else if (file == null) {
file = clite.resolvePath(argv[i],false);
}else{
stdio.fprintf(io.stderr,'unknown argument: %s\n',argv[i]);
}
}
return null;
if (!stdio.isatty(io.stdin))
return 1;
if (file == null) {
stdio.write(io.stderr,'no file specified\n');
return 1;
}
var fd = stdio.open(file,stdio.flags.O_RDONLY|stdio.flags.O_CREAT,prepFile);
if (!fd) {
stdio.fprintf(io.stderr,'could not open file: %s\n',file);
return 1;
}
curses.initscr();
cols = curses.getmaxx();
rows = curses.getmaxy();
curses.cbreak();
curses.noecho();
curses.printw('Loading...');
curses.getch(input);
return null;
}
return main(args.length,args);
});
}