Commit | Line | Data |
---|---|---|
6278ec69 | 1 | #ifndef lint |
08570df5 | 2 | static char sccsid[] = "@(#)uulog.c 5.4 (Berkeley) %G%"; |
6278ec69 SL |
3 | #endif |
4 | ||
5 | #include "uucp.h" | |
6 | ||
7 | #ifndef SYSBUF | |
8 | static char SYSBUF[BUFSIZ]; | |
9 | #endif | |
10 | ||
6278ec69 SL |
11 | main(argc, argv) |
12 | char *argv[]; | |
13 | { | |
14 | FILE *plogf; | |
1a85e9d2 | 15 | char *sys, *user; |
6278ec69 | 16 | |
1a85e9d2 | 17 | char buf[BUFSIZ], u[64], s[64]; |
6278ec69 SL |
18 | |
19 | setbuf(stdout, SYSBUF); | |
20 | strcpy(Progname, "uulog"); | |
1a85e9d2 | 21 | sys = user = NULL; |
6278ec69 SL |
22 | |
23 | ||
24 | while (argc>1 && argv[1][0] == '-') { | |
25 | switch (argv[1][1]) { | |
26 | case 's': | |
1a85e9d2 RC |
27 | sys = &argv[1][2]; |
28 | if (*sys == NULL && argc > 2 && argv[2][0] != '-') { | |
29 | sys = &argv[2][0]; | |
6278ec69 SL |
30 | argv++; |
31 | argc--; | |
32 | } | |
08570df5 JB |
33 | if (strlen(sys) > MAXBASENAME) |
34 | sys[MAXBASENAME] = '\0'; | |
1a85e9d2 RC |
35 | if (versys(&sys) != SUCCESS){ |
36 | fprintf(stderr,"uulog: unknown system %s\n", sys); | |
37 | sys = NULL; | |
38 | } | |
6278ec69 SL |
39 | break; |
40 | case 'u': | |
41 | user = &argv[1][2]; | |
42 | if (*user == NULL && argc > 2 && argv[2][0] != '-') { | |
43 | user = &argv[2][0]; | |
44 | argv++; | |
45 | argc--; | |
46 | } | |
47 | break; | |
48 | default: | |
49 | printf("unknown flag %s\n", argv[1]); break; | |
50 | } | |
51 | --argc; argv++; | |
52 | } | |
53 | ||
54 | ||
1a85e9d2 RC |
55 | if (user == NULL && sys == NULL) { |
56 | fprintf(stderr, "usage: uulog [-u user] [-s sys]\n"); | |
6278ec69 SL |
57 | exit(1); |
58 | } | |
6278ec69 | 59 | |
1a85e9d2 RC |
60 | #ifdef LOGBYSITE |
61 | if (chdir(SPOOL) < 0) { | |
62 | perror(SPOOL); | |
63 | exit(1); | |
64 | } | |
65 | /* this program is really obsolete, this is a rude backward compat */ | |
66 | if (user) { | |
67 | sprintf(buf, "exec cat LOG/uu*/* | egrep '^%s '", user); | |
68 | system(buf); | |
69 | } | |
70 | if (sys) { | |
71 | sprintf(buf,"exec cat LOG/uu*/%s", sys); | |
72 | system(buf); | |
73 | } | |
74 | #else !LOGBYSITE | |
6278ec69 SL |
75 | plogf = fopen(LOGFILE, "r"); |
76 | ASSERT(plogf != NULL, "CAN NOT OPEN", LOGFILE, 0); | |
77 | while (fgets(buf, BUFSIZ, plogf) != NULL) { | |
78 | sscanf(buf, "%s%s", u, s); | |
79 | if (user != NULL && !prefix(user, u)) | |
80 | continue; | |
1a85e9d2 | 81 | if (sys != NULL && !prefix(sys, s)) |
6278ec69 SL |
82 | continue; |
83 | fputs(buf, stdout); | |
84 | fflush(stdout); | |
85 | } | |
1a85e9d2 | 86 | #endif !LOGBYSITE |
6278ec69 SL |
87 | exit(0); |
88 | } | |
89 | ||
90 | cleanup(code) | |
91 | int code; | |
92 | { | |
93 | exit(code); | |
94 | } |