|
|
1.1 ! root 1: /* ! 2: * uulog.c ! 3: * ! 4: * Dump the UUCP uucico or uuxqt log files. ! 5: */ ! 6: ! 7: #include "dcp.h" ! 8: ! 9: #define LOGSDIR ".Log" ! 10: ! 11: char logdir[LOGFLEN]; ! 12: char command[BUFSIZ]; ! 13: char *sysname = NULL; ! 14: char *process = "uucico"; ! 15: int fflag = 0; ! 16: int tailnum = 0; ! 17: ! 18: extern int optind; ! 19: extern int optopt; ! 20: extern char *optarg; ! 21: ! 22: main(argc, argv) ! 23: int argc; ! 24: char *argv[]; ! 25: { ! 26: int ch, exstat=0; ! 27: ! 28: while ( (ch=getopt(argc, argv, "f:n:vVx")) != EOF ) { ! 29: switch (ch) { ! 30: case 'f': ! 31: fflag = 1; ! 32: sysname = optarg; ! 33: break; ! 34: case 'n': ! 35: tailnum = atoi(optarg); ! 36: break; ! 37: case 'x': ! 38: process = "uuxqt"; ! 39: break; ! 40: case 'v': ! 41: case 'V': ! 42: fatal("uulog: Version %s", VERSION); ! 43: case '?': ! 44: default: ! 45: usage("Improper option usage: %c", optopt); ! 46: } ! 47: } ! 48: sprintf(logdir, "%s/%s/%s", SPOOLDIR, LOGSDIR, process); ! 49: if ( fflag ) { ! 50: if ( optind < argc ) ! 51: usage("only one system with -f flag"); ! 52: if ( tailnum > 0 ) ! 53: sprintf(command, "tail -%df %s/%s", tailnum, ! 54: logdir, sysname); ! 55: else ! 56: sprintf(command, "tail -f %s/%s", logdir, sysname); ! 57: exit( system(command) ); ! 58: } ! 59: ! 60: if ( optind >= argc ) { ! 61: if ( tailnum > 0 ) ! 62: sprintf(command, "for zz in `uuname`; do \ ! 63: tail -%d %s/$zz; done", ! 64: tailnum, logdir); ! 65: else ! 66: sprintf(command, "for zz in `uuname`; do \ ! 67: cat %s/$zz; done", logdir); ! 68: exit( system(command) ); ! 69: } ! 70: ! 71: for (;optind<argc; optind++) { ! 72: if ( tailnum > 0 ) ! 73: sprintf(command, "tail -%d %s/%s", tailnum, ! 74: logdir, argv[optind]); ! 75: else ! 76: sprintf(command, "cat %s/%s", logdir, argv[optind]); ! 77: exstat |= system(command); ! 78: } ! 79: exit(exstat); ! 80: } ! 81: ! 82: usage(x) ! 83: { ! 84: fatal("\n%r\n\ ! 85: Usage: uulog [ -n <tail-numlines> ] [ -x ] [ -f <sys> ]\n\ ! 86: uulog [ -n <tail-numlines> ] [ -x ] [ system ... ]\n\ ! 87: ", &x); ! 88: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.