xref: /plan9/sys/src/cmd/awd.c (revision 4d44ba9b9ee4246ddbd96c7fcaf0918ab92ab35a)
1 #include <u.h>
2 #include <libc.h>
3 
4 /*
5  * like fprint but be sure to deliver as a single write.
6  * (fprint uses a small write buffer.)
7  */
8 void
xfprint(int fd,char * fmt,...)9 xfprint(int fd, char *fmt, ...)
10 {
11 	char *s;
12 	va_list arg;
13 
14 	va_start(arg, fmt);
15 	s = vsmprint(fmt, arg);
16 	va_end(arg);
17 	if(s == nil)
18 		sysfatal("smprint: %r");
19 	write(fd, s, strlen(s));
20 	free(s);
21 }
22 
23 void
main(int argc,char ** argv)24 main(int argc, char **argv)
25 {
26 	int fd;
27 	char dir[512];
28 
29 	fd = open("/dev/acme/ctl", OWRITE);
30 	if(fd < 0)
31 		exits(0);
32 	getwd(dir, 512);
33 	if(dir[0]!=0 && dir[strlen(dir)-1]=='/')
34 		dir[strlen(dir)-1] = 0;
35 	xfprint(fd, "name %s/-%s\n",  dir, argc > 1 ? argv[1] : "rc");
36 	xfprint(fd, "dumpdir %s\n", dir);
37 	exits(0);
38 }
39