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
main(int argc,char ** argv)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