xref: /plan9/sys/src/cmd/mtime.c (revision d9306527b4a7229dcf0cf3c58aed36bb9da82854)
1*d9306527SDavid du Colombier #include <u.h>
2*d9306527SDavid du Colombier #include <libc.h>
3*d9306527SDavid du Colombier 
4*d9306527SDavid du Colombier void
usage(void)5*d9306527SDavid du Colombier usage(void)
6*d9306527SDavid du Colombier {
7*d9306527SDavid du Colombier 	fprint(2, "usage: mtime file...\n");
8*d9306527SDavid du Colombier 	exits("usage");
9*d9306527SDavid du Colombier }
10*d9306527SDavid du Colombier 
11*d9306527SDavid du Colombier void
main(int argc,char ** argv)12*d9306527SDavid du Colombier main(int argc, char **argv)
13*d9306527SDavid du Colombier {
14*d9306527SDavid du Colombier 	int errors, i;
15*d9306527SDavid du Colombier 	Dir *d;
16*d9306527SDavid du Colombier 
17*d9306527SDavid du Colombier 	ARGBEGIN{
18*d9306527SDavid du Colombier 	default:
19*d9306527SDavid du Colombier 		usage();
20*d9306527SDavid du Colombier 	}ARGEND
21*d9306527SDavid du Colombier 
22*d9306527SDavid du Colombier 	errors = 0;
23*d9306527SDavid du Colombier 	for(i=0; i<argc; i++){
24*d9306527SDavid du Colombier 		if((d = dirstat(argv[i])) == nil){
25*d9306527SDavid du Colombier 			fprint(2, "stat %s: %r\n", argv[i]);
26*d9306527SDavid du Colombier 			errors = 1;
27*d9306527SDavid du Colombier 		}else{
28*d9306527SDavid du Colombier 			print("%11lud %s\n", d->mtime, argv[i]);
29*d9306527SDavid du Colombier 			free(d);
30*d9306527SDavid du Colombier 		}
31*d9306527SDavid du Colombier 	}
32*d9306527SDavid du Colombier 	exits(errors ? "errors" : nil);
33*d9306527SDavid du Colombier }
34