1 #include <u.h> 2 #include <libc.h> 3 4 #include "multiproto.h" 5 struct { 6 char *name; 7 void (*fn)(int, char**); 8 } mains[] = 9 { 10 #include "multi.h" 11 }; 12 13 void 14 main(int argc, char **argv) 15 { 16 int i; 17 char *cmd, *p; 18 19 if(argc == 1){ 20 fprint(2, "usage: multi cmd args...\n"); 21 exits("usage"); 22 } 23 24 cmd = argv[1]; 25 if(p = strrchr(cmd, '/')) 26 cmd = p+1; 27 argv++; 28 argc--; 29 30 for(i=0; i<nelem(mains); i++){ 31 if(strcmp(cmd, mains[i].name) == 0){ 32 mains[i].fn(argc, argv); 33 return; 34 } 35 } 36 fprint(2, "multi: no such cmd %s\n", cmd); 37 exits("no cmd"); 38 } 39