Blame


1 778df25e 2004-06-16 devnull #include <u.h>
2 778df25e 2004-06-16 devnull #include <libc.h>
3 778df25e 2004-06-16 devnull #include <bio.h>
4 778df25e 2004-06-16 devnull
5 fb04a0b9 2007-03-15 devnull #define openlog auxclog_openlog /* libc symbol on OS X */
6 fb04a0b9 2007-03-15 devnull
7 778df25e 2004-06-16 devnull char *argv0;
8 778df25e 2004-06-16 devnull
9 778df25e 2004-06-16 devnull int
10 778df25e 2004-06-16 devnull openlog(char *name)
11 778df25e 2004-06-16 devnull {
12 778df25e 2004-06-16 devnull int fd;
13 778df25e 2004-06-16 devnull
14 778df25e 2004-06-16 devnull fd = open(name, OWRITE);
15 778df25e 2004-06-16 devnull if(fd < 0)
16 778df25e 2004-06-16 devnull fd = create(name, OWRITE, DMAPPEND|0666);
17 778df25e 2004-06-16 devnull if(fd < 0){
18 778df25e 2004-06-16 devnull fprint(2, "%s: can't open %s: %r\n", argv0, name);
19 778df25e 2004-06-16 devnull return -1;
20 778df25e 2004-06-16 devnull }
21 778df25e 2004-06-16 devnull seek(fd, 0, 2);
22 778df25e 2004-06-16 devnull return fd;
23 778df25e 2004-06-16 devnull }
24 778df25e 2004-06-16 devnull
25 778df25e 2004-06-16 devnull void
26 778df25e 2004-06-16 devnull main(int argc, char **argv)
27 778df25e 2004-06-16 devnull {
28 778df25e 2004-06-16 devnull Biobuf in;
29 778df25e 2004-06-16 devnull int fd;
30 778df25e 2004-06-16 devnull char *p, *t;
31 778df25e 2004-06-16 devnull char buf[8192];
32 778df25e 2004-06-16 devnull
33 778df25e 2004-06-16 devnull argv0 = argv[0];
34 311b2afd 2005-01-21 devnull if(argc != 3){
35 778df25e 2004-06-16 devnull fprint(2, "usage: %s console logfile \n", argv0);
36 778df25e 2004-06-16 devnull exits("usage");
37 778df25e 2004-06-16 devnull }
38 778df25e 2004-06-16 devnull
39 c39bd355 2005-01-04 devnull if(strcmp(argv[1], "-") == 0)
40 d5cada13 2006-06-26 devnull fd = 0;
41 c39bd355 2005-01-04 devnull else
42 c39bd355 2005-01-04 devnull fd = open(argv[1], OREAD);
43 778df25e 2004-06-16 devnull if(fd < 0){
44 778df25e 2004-06-16 devnull fprint(2, "%s: can't open %s: %r\n", argv0, argv[1]);
45 778df25e 2004-06-16 devnull exits("open");
46 778df25e 2004-06-16 devnull }
47 778df25e 2004-06-16 devnull Binit(&in, fd, OREAD);
48 778df25e 2004-06-16 devnull
49 778df25e 2004-06-16 devnull fd = openlog(argv[2]);
50 778df25e 2004-06-16 devnull
51 778df25e 2004-06-16 devnull for(;;){
52 778df25e 2004-06-16 devnull if(p = Brdline(&in, '\n')){
53 778df25e 2004-06-16 devnull p[Blinelen(&in)-1] = 0;
54 778df25e 2004-06-16 devnull t = ctime(time(0));
55 778df25e 2004-06-16 devnull t[19] = 0;
56 778df25e 2004-06-16 devnull if(fprint(fd, "%s: %s\n", t, p) < 0){
57 778df25e 2004-06-16 devnull close(fd);
58 778df25e 2004-06-16 devnull fd = openlog(argv[2]);
59 778df25e 2004-06-16 devnull fprint(fd, "%s: %s\n", t, p);
60 778df25e 2004-06-16 devnull }
61 cbeb0b26 2006-04-01 devnull } else if(Blinelen(&in) == 0) /* true eof */
62 778df25e 2004-06-16 devnull break;
63 778df25e 2004-06-16 devnull else {
64 778df25e 2004-06-16 devnull Bread(&in, buf, sizeof buf);
65 778df25e 2004-06-16 devnull }
66 778df25e 2004-06-16 devnull }
67 778df25e 2004-06-16 devnull exits(0);
68 778df25e 2004-06-16 devnull }