File: dh_installcligac

package info (click to toggle)
cli-common 0.10
  • links: PTS, VCS
  • area: main
  • in suites: buster, sid
  • size: 284 kB
  • sloc: perl: 1,198; sh: 103; makefile: 44
file content (90 lines) | stat: -rwxr-xr-x 1,991 bytes parent folder | download
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
#!/usr/bin/perl -w

=head1 NAME

dh_installcligac - register assemblies to be late installed into a GAC

=cut

use strict;
use Debian::Debhelper::Dh_Lib;

=head1 SYNOPSIS

B<dh_installcligac> [S<I<debhelper options>>] [B<-n>]

=head1 DESCRIPTION

dh_installcligac is a debhelper program that is responsible for
installing assemblies and related files used by the Debian cli-common
package into GAC of all installed runtimes.

It also automatically generates the postinst and prerm commands needed
to late install the assemblies. See L<dh_installdeb(1)> for an
explanation of how this works.

This is based on L<dh_installemacsen(1)> in the emacsen-common package.

=head1 OPTIONS

=over 4

=item B<-n>, B<--noscripts>

Do not modify postinst/prerm scripts.

=back

=head1 NOTES

Note that this command is not idempotent. "dh_prep" 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 installcligac

foreach my $package (@{$dh{DOPACKAGES}}) {
	my $tmp = tmpdir($package);

	my $cligac = pkgfile($package, "installcligac");

	if ($cligac ne '') {
		# sanity check: do all files listed in the installcligac file exist?
		open CLIGAC, "<$cligac" or
			die "E: Can't open $cligac\n";
		while (<CLIGAC>)
		{
			chomp;
			if (! -f "$tmp$_") {
				die "E: Can't find file $tmp$_!\n";
			}
		}
		close CLIGAC;

		install_dir("$tmp/usr/share/cli-common/packages.d");
		install_file($cligac, "$tmp/usr/share/cli-common/packages.d/$package.installcligac");

		if (! $dh{NOSCRIPTS}) {
			autoscript($package, "postinst", "postinst-cligac",
                                   { 'PACKAGE' => $package });
			autoscript($package, "prerm", "prerm-cligac",
                                   { 'PACKAGE' => $package });
		}
	}
}

=head1 SEE ALSO

L<debhelper(7)>

This program is a part of cli-common-dev.

=head1 AUTHOR

Dylan R. E. Moonfire <debian@mfgames.com>

=cut