summaryrefslogtreecommitdiffstats
path: root/dh_ucf
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xdh_ucf111
1 files changed, 111 insertions, 0 deletions
diff --git a/dh_ucf b/dh_ucf
new file mode 100755
index 0000000..99d5b87
--- /dev/null
+++ b/dh_ucf
@@ -0,0 +1,111 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+dh_ucf - register configuration files with ucf
+
+=cut
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
+
+our $VERSION = DH_BUILTIN_VERSION;
+
+=head1 SYNOPSIS
+
+B<dh_ucf> [S<I<debhelper options>>] [B<-A>] [B<-n>] [S<I<file> ...>]
+
+=head1 DESCRIPTION
+
+B<dh_ucf> 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. The source
+should be a file that is provided by your package, typically in /usr/share/,
+while the destination is typically a file in /etc/.
+
+A dependency on ucf will be generated in B<${misc:Depends}>.
+
+Supports substitution variables in compat 13 and later as
+documented in L<debhelper(7)>.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-A>, B<--all>
+
+Install all files specified by command line parameters in ALL packages
+acted on.
+
+=item B<-n>, B<--no-scripts>
+
+Do not modify F<postinst>/F<postrm> scripts. Turns this command into a no-op.
+
+=item I<file> ...
+
+Install these info files into the first package acted on. (Or in
+all packages if B<-A> is specified).
+
+=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();
+
+# PROMISE: DH NOOP WITHOUT ucf cli-options()
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ 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:g;s:#UCFDEST#:$dest:g;s/#PACKAGE#/$package/g",);
+ autoscript($package,"postrm","postrm-ucf","s:#UCFDEST#:$dest:g;s/#PACKAGE#/$package/g");
+ }
+ }
+}
+
+=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