xref: /plan9/sys/src/cmd/venti/srv/readifile.c (revision 368c31ab13393dea083228fdd1c3445076f83a4b)
1*368c31abSDavid du Colombier #include "stdinc.h"
2*368c31abSDavid du Colombier #include "dat.h"
3*368c31abSDavid du Colombier #include "fns.h"
4*368c31abSDavid du Colombier 
5*368c31abSDavid du Colombier void
usage(void)6*368c31abSDavid du Colombier usage(void)
7*368c31abSDavid du Colombier {
8*368c31abSDavid du Colombier 	fprint(2, "usage: readifile file\n");
9*368c31abSDavid du Colombier 	threadexitsall("usage");
10*368c31abSDavid du Colombier }
11*368c31abSDavid du Colombier 
12*368c31abSDavid du Colombier void
threadmain(int argc,char * argv[])13*368c31abSDavid du Colombier threadmain(int argc, char *argv[])
14*368c31abSDavid du Colombier {
15*368c31abSDavid du Colombier 	IFile ifile;
16*368c31abSDavid du Colombier 
17*368c31abSDavid du Colombier 	ARGBEGIN{
18*368c31abSDavid du Colombier 	default:
19*368c31abSDavid du Colombier 		usage();
20*368c31abSDavid du Colombier 	}ARGEND
21*368c31abSDavid du Colombier 
22*368c31abSDavid du Colombier 	if(argc != 1)
23*368c31abSDavid du Colombier 		usage();
24*368c31abSDavid du Colombier 
25*368c31abSDavid du Colombier 	if(readifile(&ifile, argv[0]) < 0)
26*368c31abSDavid du Colombier 		sysfatal("readifile %s: %r", argv[0]);
27*368c31abSDavid du Colombier 	write(1, ifile.b->data, ifile.b->len);
28*368c31abSDavid du Colombier 	threadexitsall(nil);
29*368c31abSDavid du Colombier }
30