diff options
author | Jeroen Schot <schot@A-Eskwadraat.nl> | 2011-04-22 12:15:10 +0200 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-04-25 19:24:53 -0400 |
commit | 3390e19f8a2947295551371c8ab2839573a1dca1 (patch) | |
tree | da41341f01c948a5dd81d51e80f9b6d9387ed465 | |
parent | e45627bda017b1c83cffc506355d8112f7b2989c (diff) |
Bug#213078: debhelper: please consider providing dh_ucf
Here is a patch against the master branch that adds such a command
called dh_installucf. It also registers the conffiles with ucfr and
removes stray ucf-{new,old,dist} files on purge.
-rw-r--r-- | autoscripts/postinst-ucf | 4 | ||||
-rw-r--r-- | autoscripts/postrm-ucf | 12 | ||||
-rwxr-xr-x | dh_installucf | 92 |
3 files changed, 108 insertions, 0 deletions
diff --git a/autoscripts/postinst-ucf b/autoscripts/postinst-ucf new file mode 100644 index 00000000..633d3ff3 --- /dev/null +++ b/autoscripts/postinst-ucf @@ -0,0 +1,4 @@ +if [ "$1" = "configure" ]; then + ucf #UCFSRC# #UCFDEST# + ucfr #PACKAGE# #UCFDEST# +fi diff --git a/autoscripts/postrm-ucf b/autoscripts/postrm-ucf new file mode 100644 index 00000000..47237a41 --- /dev/null +++ b/autoscripts/postrm-ucf @@ -0,0 +1,12 @@ +if [ "$1" = "purge" ]; then + for ext in .ucf-new .ucf-old .ucf-dist ""; do + rm -f #UCFDEST#$ext + done + + if [ -x `which ucf 2>/dev/null`]; then + ucf --purge #UCFDEST# + fi + if [ -x `which ucfr 2>/dev/null`]; then + ucfr --purge #PACKAGE# #UCFDEST# + fi +fi diff --git a/dh_installucf b/dh_installucf new file mode 100755 index 00000000..caba6e87 --- /dev/null +++ b/dh_installucf @@ -0,0 +1,92 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_installucf - register configuration files with ucf + +=cut + +use strict; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B<dh_installucf> [S<I<debhelper options>>] [B<-n>] [S<i<source destination> ...>] + +=head1 DESCRIPTION + +B<dh_installucf> is a debhelper program that is responsible for generating the +F<postinst> and F<postrm> commands that register files with ucf(1) and ucfr(1). + +=head1 FILES + +=over 4 + +=item debian/I<package>.ucf + +List pairs of source and destination files to register with ucf. Each pair +should be put on its own line, with the source and destination separated by +whitespace. Both source and destination must be absolute paths. + +A dependency on ucf will be generated in B<${misc:Depends}>. + +=back + +=head1 OPTIONS + +=over 4 + +=item B<-n>, B<--noscripts> + +Do not modify F<postinst>/F<postrm> scripts. Turns this command into a no-op. + +=back + +=head1 NOTES + +Note that this command is not idempotent. L<dh_prep(1)> should be called +between invocations of this command. Otherwise, it may cause multiple +instances of the same text to be added to maintainer scripts. + +=cut + +init(); + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmp=tmpdir($package); + my $file=pkgfile($package,"ucf"); + + my @ucf; + if ($file) { + @ucf=filedoublearray($file); + } + + if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) { + push @ucf, [@ARGV]; + } + + if (! $dh{NOSCRIPTS}) { + if (@ucf) { + addsubstvar($package, "misc:Depends", "ucf"); + } + foreach my $set (@ucf) { + my $src = $set->[0]; + my $dest = $set->[1]; + autoscript($package,"postinst","postinst-ucf","s:#UCFSRC#:$src:;s:#UCFDEST#:$dest:;s/#PACKAGE#/$package/",); + autoscript($package,"postrm","postrm-ucf","s:#UCFDEST#:$dest:;s/#PACKAGE#/$package/"); + } + } +} + +=head1 SEE ALSO + +L<debhelper(7)> + +This program is a part of debhelper. + +=head1 AUTHOR + +Joey Hess <joeyh@debian.org> +Jeroen Schot <schot@a-eskwadraat.nl> + +=cut |