xref: /plan9/sys/src/cmd/chgrp.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1 #include <u.h>
2 #include <libc.h>
3 
4 int	readgid(char*);
5 int	uflag;
6 
7 void
main(int argc,char * argv[])8 main(int argc, char *argv[])
9 {
10 	int i;
11 	Dir dir;
12 	char *group;
13 	char *errs;
14 
15 	ARGBEGIN {
16 	default:
17 	usage:
18 		fprint(2, "usage: chgrp [ -uo ] group file ....\n");
19 		exits("usage");
20 		return;
21 	case 'u':
22 	case 'o':
23 		uflag++;
24 		break;
25 	} ARGEND
26 	if(argc < 1)
27 		goto usage;
28 
29 	group = argv[0];
30 	errs = 0;
31 	for(i=1; i<argc; i++){
32 		nulldir(&dir);
33 		if(uflag)
34 			dir.uid = group;
35 		else
36 			dir.gid = group;
37 		if(dirwstat(argv[i], &dir) == -1) {
38 			fprint(2, "chgrp: can't wstat %s: %r\n", argv[i]);
39 			errs = "can't wstat";
40 			continue;
41 		}
42 	}
43 	exits(errs);
44 }
45