summaryrefslogtreecommitdiffstats
path: root/dh_ucf
blob: e8a031b27e77b84090684fe0dee8373621d4730c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/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(
		{
			'named'                              => 0,
			'support-architecture-restriction'   => 0,
		},
		$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