Hello! I'm using distcc to set up my gentoo servers at home, and man it's awesome! (Wish I didn't have such flakey hardware, that I have to restart it all the time, but that's another matter.. :)).
Anyhow, I'm quite a fan of the console, so I put together a tiny patch to make the distccmon-text output look a little nicer. Basically this is what it does: *.- Refrains from printing out a newline, if nothing new was displayed (different compiler 'batches' are still separated by spaces, tho'). *.- Prints the time/date. So, pretty simple - ideally I suppose there should be command line options to toggle some of these on and off, but I figured some people might like this, as I know I have! Anyhow, to apply this patch, run patch -Np1 [path-to-"mon-text.c"] [patch-file-name]. Save the following output to a file, something like distcc-2.16-nicer-output.patch, and use it as the second parameter to the above command. If there's any questions, suggestions, comments, let me know (I'm not on this list, so please e-mail me directly. eparker @ freeshell . org). If I get the time, I'm thinking an ncurses-based monitor would be nice.. Something to toggle these settings easily, etc. (I by no means say my code is the be-all-end-all... :) No warranties, etc, etc. :)) Here's the patch, copy everything between the lines: -------------------BEGIN----------------- --- distcc-2.16/src/mon-text.c 2004-07-08 06:02:15.000000000 +0000 +++ ../distcc-2.16/src/mon-text.c 2004-09-13 19:53:39.000000000 +0000 @@ -28,6 +28,7 @@ #include <errno.h> #include <unistd.h> #include <fcntl.h> +#include <time.h> #include "types.h" #include "distcc.h" @@ -88,25 +89,33 @@ * other program, so make sure we're always line buffered. */ setvbuf (stdout, NULL, _IOLBF, BUFSIZ); + char currentTime[9]; + do { struct dcc_history *i; if ((ret = dcc_mon_poll(&list))) return ret; - + unsigned dirty=0; for (i = list; i; i = i->next) { + dirty = 1; #if 1 if (i->curr_state == DCC_STATE_DONE) continue; #endif + time_t cTime; + time(&cTime); + strftime(currentTime, 9, "%H:%M:%S", localtime(&cTime)); /* Assume 80 cols = */ - printf("%6ld %-10.10s %-30.30s %24.24s[%d]\n", - (long) i->cpid, + printf("[%8s] %6ld %-10.10s %-30.30s %24.24s[%d]\n", + currentTime, + (long) i->cpid, dcc_get_state_name(i->curr_state), i->file, i->host, i->slot); } - printf("\n"); + if(dirty) + printf("\n"); /* XXX: usleep() is probably not very portable */ usleep(delay * 1000000); ------------------- END ----------------- -------------------------------------------------------------------- mail2web - Check your email from the web at http://mail2web.com/ . __ distcc mailing list http://distcc.samba.org/ To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/distcc