diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 16:53:33 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 16:53:33 +0300 |
commit | e463eb40363ff4c68b1d903f4e0cdd0ac1c5977f (patch) | |
tree | d5e9f57c28f026cb21de3bd77cc10cd7f64aaa85 /sys/lib/dist/cmd/multi/multi.c | |
parent | b41b9034225ab3e49980d9de55c141011b6383b0 (diff) |
Import sources from 2011-03-30 iso image - sys/lib
Diffstat (limited to 'sys/lib/dist/cmd/multi/multi.c')
-rwxr-xr-x | sys/lib/dist/cmd/multi/multi.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/sys/lib/dist/cmd/multi/multi.c b/sys/lib/dist/cmd/multi/multi.c new file mode 100755 index 000000000..a2e3035ad --- /dev/null +++ b/sys/lib/dist/cmd/multi/multi.c @@ -0,0 +1,38 @@ +#include <u.h> +#include <libc.h> + +#include "multiproto.h" +struct { + char *name; + void (*fn)(int, char**); +} mains[] = +{ +#include "multi.h" +}; + +void +main(int argc, char **argv) +{ + int i; + char *cmd, *p; + + if(argc == 1){ + fprint(2, "usage: multi cmd args...\n"); + exits("usage"); + } + + cmd = argv[1]; + if(p = strrchr(cmd, '/')) + cmd = p+1; + argv++; + argc--; + + for(i=0; i<nelem(mains); i++){ + if(strcmp(cmd, mains[i].name) == 0){ + mains[i].fn(argc, argv); + return; + } + } + fprint(2, "multi: no such cmd %s\n", cmd); + exits("no cmd"); +} |