1 #include <u.h>
2 #include <libc.h>
3
4 void usage(void);
5
6 void
main(int argc,char * argv[])7 main(int argc, char *argv[])
8 {
9 ulong flag = 0;
10 int qflag = 0;
11
12 ARGBEGIN{
13 case 'a':
14 flag |= MAFTER;
15 break;
16 case 'b':
17 flag |= MBEFORE;
18 break;
19 case 'c':
20 flag |= MCREATE;
21 break;
22 case 'q':
23 qflag = 1;
24 break;
25 default:
26 usage();
27 }ARGEND
28
29 if(argc != 2 || (flag&MAFTER)&&(flag&MBEFORE))
30 usage();
31
32 if(bind(argv[0], argv[1], flag) < 0){
33 if(qflag)
34 exits(0);
35 /* try to give a less confusing error than the default */
36 if(access(argv[0], 0) < 0)
37 fprint(2, "bind: %s: %r\n", argv[0]);
38 else if(access(argv[1], 0) < 0)
39 fprint(2, "bind: %s: %r\n", argv[1]);
40 else
41 fprint(2, "bind %s %s: %r\n", argv[0], argv[1]);
42 exits("bind");
43 }
44 exits(0);
45 }
46
47 void
usage(void)48 usage(void)
49 {
50 fprint(2, "usage: bind [-q] [-b|-a|-c|-bc|-ac] new old\n");
51 exits("usage");
52 }
53