Paul Slootman <[EMAIL PROTECTED]> wrote:
>> > I'm talking about the case where you just entered a value,
>> > interactively.
>>
>> But I may have changed my mind, and i shouldn't be forced to use debconf
>> then. No, I *mustn't* be forced.
>
> I'm talking about someone who wants to use debconf...
I'm talking about the freedom to switch from and to debconf as I like,
or to not switch and stick to always using it (or never using it). Just
as it was designed.
> He chose at one time to have the fetching active, removed the cron.d
> script later, and then changed his mind again, and thinks he can
> reactivate it via debconf.
He can if it's coded properly.
> I read your bug report to mean that if the user removes the file,
> postinst should never, ever recreate it again, because that's what the
> user wants, otherwise he wouldn't have removed the file.
Sorry if I was too short. I never wanted to say that.
> And that's what I have a problem with,
Fine, so we don't have a problem with each other's goals :-)
> dpkg-reconfigure again and enters a fetch frequency, "I" (the postinst
> script) wouldn't be allowed to create the file again. Your exact words
> were "and indeed the postinst scripts recreates the file if it has been
> deleted.", indicating that was the problem. You didn't qualify that
> statement with "unconditionally" or so...
Sorry for that, I was just too short and assumed you'd figure out
yourself what I meant, which isn't a proper way to report a bug...
>> Is the new maintainer script available somewhere?
>
> Not yet.
So does it make sense that I start of with the old ones? I guess I need
config, postinst and maybe the templates file.
Here's a quick shot, untested:
In wwwoffle.config:
if [ -s /etc/cron.d/wwwoffle ]; then
... as before ...
elif [ -n "$CONFIG_ARG2" ]; # do this only when this is not a fresh install
db_set wwwoffle/fetchfrequency off
fi
db_get wwwoffle/fetchfrequency ###########################################
rc=$?
- if [ $rc -eq 0 -o $rc -ge 30 ]; then # bashism, and won't catch "off"
+ if [ $rc = off ] || [ $rc -eq 0 ] || [ $rc -ge 30 ]; then
FREQ="$RET"
if [ "$FREQ" != off ]; then
# convert to digits only
FREQ=$( expr "$FREQ" : '\([0-9]*\)' )
if [ -z "$FREQ" ]
then FREQ=off
elif [ "$FREQ" = 0 ]
then FREQ=off
fi
fi
if [ "$FREQ" = off ]; then
if [ -s $CRONTAB ]; then
# replace only first occurrence of wwwoffle.cron-fetch line
perl -i.bak -pe
'unless($done==1){if(s,^(\s*#\s*)*([^#]*wwwoffle.cron-fetch),# $2,){$done=1;}}'
$CRONTAB
else
- ( echo "# min hr dom mon dow"
- echo "# If you want to disable this, comment out the line"
- echo "# below (don't simply remove this file)."
- echo "# */30 * * * * proxy [ -x
/etc/wwwoffle/wwwoffle.cron-fetch ] && /etc/wwwoffle/wwwoffle.cron-fetch"
- ) > /etc/cron.d/wwwoffle
- fi
+ :
else
But I don't understand the purpose of the first test where I fixed the
bashism - why do you only act on the crontab file if the value is zero
or if it is at least 30? That means that I can't set it to 20 via
debconf, doesn't it?
Regards, Frank
--
Frank Küster
Single Molecule Spectroscopy, Protein Folding @ Inst. f. Biochemie, Univ. Zürich
Debian Developer (teTeX)