On Sun, Jan 14, 2001 at 11:58:33PM -0800, Joey Hess wrote:
> Now an example of a package that does it right. Its config script:
> #!/bin/sh -e
> . /usr/share/debconf/confmodule
> if [ -e /etc/foo ]; then
> . /etc/foo || true
> if [ "$QUESTION" ]; then
> db_set foo/question $QUESTION
> fi
> fi
> db_input medium foo/question || true
> db_go || true
>
> And its postinst:
>
> #!/bin/sh -e
> . /usr/share/debconf/confmodule
> db_get foo/question
> if [ ! -e "/etc/foo" ]; then
> echo "# Configuration for foo" > /etc/foo
> echo "# Helpful comment here" >> /etc/foo
> echo "QUESTION=$RET" >> /etc/foo
> else
> sed -e "s/QUESTION=.*/QUESTION=$RET/" < /etc/foo > /etc/foo.new
> mv -f /etc/foo.new /etc/foo
> fi
An alternative method, that mimics conffile behaviour somewhat:
foo.templates:
Template: foo/question
...
Template: foo/etc-foo-md5
Type: string
Default: not-present
foo.config:
#!/bin/sh -e
. /usr/share/debconf/confmodule
db_input foo/question
foo.postinst:
#!/bin/sh -e
. /usr/share/debconf/confmodule
db_get foo/etc-foo-md5; MD5=$RET
if [ "$MD5" = "not-present" -a ! -e /etc/foo ] ||
[ -e /etc/foo -a "$MD5" = $(md5sum < /etc/foo) ]
then
# config file under control of debconf still
db_get foo/question; FOO=$RET
(echo "# /etc/foo -- see foo(5) for info"
echo "QUESTION=$FOO"
) > /etc/foo
NEWMD5=$(md5sum < /etc/foo)
db_set foo/etc-foo-md5 $NEWMD5
fi
(untested, mind)
Cheers,
aj
--
Anthony Towns <aj@humbug.org.au> <http://azure.humbug.org.au/~aj/>
I don't speak for anyone save myself. GPG signed mail preferred.
``Thanks to all avid pokers out there''
-- linux.conf.au, 17-20 January 2001
Attachment:
pgpivgefwhaj3.pgp
Description: PGP signature