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