On Sat, Apr 01, 2006 at 06:23:02PM -0500, Justin Pryzby wrote:
> On Fri, Mar 31, 2006 at 06:58:24PM +0100, Julian Gilbey wrote:
> > On Thu, Mar 23, 2006 at 03:15:10PM -0500, Justin Pryzby wrote:
> > > Here's an updated copy of the tool, which should be runnable now
> > > without copying it; the dehs stuff might be in flux, though..
> >
> > Anyone got an idea for a better name than dev-best-practice, since it
> > seems like something we could just stick in /usr/bin and be done with
> > it?
> >
> > Something like dev-check-system or dev-package-status or something
> > like that?
> Sure, whatever :) "devcheck" is too much like the QA debcheck, but
> how about "dev-checker"?
Sounds good!
> > BTW, I have an additional way of avoiding the "killing the BTS at
> > 02:00 local time": just change the heading to say:
> >
> > # Best-practice information for Debian developers
> > # intended to be run periodically as a cronjob, for example weekly as:
> > # 0 hour * * day /usr/bin/dev-best-practice
> > # (replacing hour and day by your preferred times!)
> I prefer to give something copy-and-paste-able, and which doesn't
> assume that everyone wont use day=0 hour=0.
There are two options here:
(1) Trust that developers are competent enough to make the change
themselves, or
(2) Not trust them.
And everyone using day=0 hour=0 will be identical to everyone using
day=0 hour=2!
I'd prefer to go for option 1.
Of course, if we want to do it automatically, we could stick it into
/etc/cron.weekly ourselves, but I'd be inundated by bug reports if I
did that!
> I'm attaching the most recent copy; help2man output is even sane.
Nice, thanks! Although I may well write my own manpage, 'cos I'm
planning to tweak this some.... See comments on code below.
> #! /bin/bash
> # dev-checker
> # Best-practice information for Debian developers;
> # intended to be run periodically as a cronjob;
> # weekly:
> # 0 2 * * 0 /usr/share/doc/devscripts/examples/dev-best-practice --delay
> --mail
Need to change this line...
> [...]
> set -e;
>
> version=0;
change to devscripts version and use generic devscripts usage/version
functions.
> # Options' default values are candidates for devscripts.conf...
> XMAIL='';
> XDELAY='';
I have an alternative suggestion:
if [ -t 1 ]; then
do interactively, --no-mail and --no-delay
else
use --mail and --delay
fi
> function version ()
> {
> echo "$0 ($version)"
> echo;
> echo "Copyright (C) 2006 Justin Pryzby <[EMAIL PROTECTED]>;";
> echo "Distributed under the MIT license grant.";
> }
Ah, a different license :)
> echo " --mail Send mail rather than displaying to stdout"
> echo " --delay Delay for a random time interval at startup"
And will need --no-mail and --no-delay options too.
> while test $# -gt 0; do
Use getopt :)
> if [ -n "$XMAIL" ]; then
> exec 3>&1;
> exec 1> >(mail -s "Debian fixme list for $LOGNAME on `date +%x`"
> $LOGNAME)
Nice one :)
> fi;
>
> src "/etc/devscripts.conf";
> src "$HOME/.devscripts";
>
> if [ -z "$DEBEMAIL" ]; then
> echo "DEBEMAIL is unset; this output wont be as complete";
> echo "You should consider setting it in ~/.devscripts";
No, can't set DEBEMAIL in .devscripts, need to set it in the
environment. Could also have a command-line option for setting it.
> else
[sequence of checks]
> echo "Checking for your bugs tagged moreinfo:";
> lynx -dump "$bts/from:$DEBEMAIL&include=moreinfo" |
I'd prefer not to rely on lynx/links if possible and make do with
wget/sed/perl.
Also, need to test for the presence of the required programs (such as
wget) before running these checks.
> sed -ne '/^[[:space:]]*\* \[[[:digit:]]\+\]\(#[[:digit:]]\)/s//\1/p';
> # grep -E '^[[:space:]]*\* \[[[:digit:]]+\]#[[:digit:]]+' |
> # sed -e 's/^[^#]*//';
Why the commented out lines?
> [...]
> if [ -n "$XMAIL" ]; then
> exec >&-;
> exec 1>&3;
> fi;
Not sure what this bit does; wouldn't exec 1>&3- be adequate?
Finally, I think it would be nice to have a devscripts option
DEVCHECKER_EXCLUDE which would be a colon-separated list of tests to
skip. Then each test would read:
case ":$EXCLUDE:" in
:thistest:) # skip test
;;
*) # do test
[...]
;;
esac
Julian
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]