xref: /csrg-svn/usr.bin/uucp/uulog/uulog.c (revision 17844)
1 #ifndef lint
2 static char sccsid[] = "@(#)uulog.c	5.2 (Berkeley) 01/22/85";
3 #endif
4 
5 #include "uucp.h"
6 
7 #ifndef	SYSBUF
8 static char SYSBUF[BUFSIZ];
9 #endif
10 
11 /*******
12  *
13  *	uulog  -
14  *
15  *	options:
16  *		-s  -  system name for search
17  *		-u  -  user name for search
18  *
19  *	exit codes:
20  *		0  -  normal
21  *
22  */
23 
24 main(argc, argv)
25 char *argv[];
26 {
27 	FILE *plogf;
28 	char *system, *user;
29 
30 	char buf[BUFSIZ], u[20], s[20];
31 
32 	setbuf(stdout, SYSBUF);
33 	strcpy(Progname, "uulog");
34 	system = user = NULL;
35 
36 
37 	while (argc>1 && argv[1][0] == '-') {
38 		switch (argv[1][1]) {
39 		case 's':
40 			system = &argv[1][2];
41 			if (*system == NULL && argc > 2 && argv[2][0] != '-') {
42 				system = &argv[2][0];
43 				argv++;
44 				argc--;
45 			}
46 			if (strlen(system) > 7)
47 				system[7] = 0;
48 			break;
49 		case 'u':
50 			user = &argv[1][2];
51 			if (*user == NULL && argc > 2 && argv[2][0] != '-') {
52 				user = &argv[2][0];
53 				argv++;
54 				argc--;
55 			}
56 			break;
57 		default:
58 			printf("unknown flag %s\n", argv[1]); break;
59 		}
60 		--argc;  argv++;
61 	}
62 
63 
64 	if (user == NULL && system == NULL) {
65 		fprintf(stderr, "usage: uulog [-u user] [-s system]\n");
66 		exit(1);
67 	}
68 /*	chmod(LOGFILE, 0666);	rm-ed by rti!trt */
69 
70 	plogf = fopen(LOGFILE, "r");
71 	ASSERT(plogf != NULL, "CAN NOT OPEN", LOGFILE, 0);
72 	while (fgets(buf, BUFSIZ, plogf) != NULL) {
73 		sscanf(buf, "%s%s", u, s);
74 		if (user != NULL && !prefix(user, u))
75 			continue;
76 		if (system != NULL && !prefix(system, s))
77 			continue;
78 		fputs(buf, stdout);
79 		fflush(stdout);
80 	}
81 	exit(0);
82 }
83 
84 cleanup(code)
85 int code;
86 {
87 	exit(code);
88 }
89