summaryrefslogtreecommitdiffstats
path: root/dh_prep
diff options
context:
space:
mode:
Diffstat (limited to 'dh_prep')
-rwxr-xr-xdh_prep80
1 files changed, 80 insertions, 0 deletions
diff --git a/dh_prep b/dh_prep
new file mode 100755
index 0000000..718d8d9
--- /dev/null
+++ b/dh_prep
@@ -0,0 +1,80 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+dh_prep - perform cleanups in preparation for building a binary package
+
+=cut
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
+
+our $VERSION = DH_BUILTIN_VERSION;
+
+=head1 SYNOPSIS
+
+B<dh_prep> [S<I<debhelper options>>] [B<-X>I<item>]
+
+=head1 DESCRIPTION
+
+B<dh_prep> is a debhelper program that performs some file cleanups in
+preparation for building a binary package. (This is what B<dh_clean -k>
+used to do.) It removes the package build directories, F<debian/tmp>,
+and some temp files that are generated when building a binary package.
+
+It is typically run at the top of the B<binary-arch> and B<binary-indep> targets,
+or at the top of a target such as install that they depend on.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-X>I<item> B<--exclude=>I<item>
+
+Exclude files that contain F<item> anywhere in their filename from being
+deleted, even if they would normally be deleted. You may use this option
+multiple times to build up a list of things to exclude.
+
+=back
+
+=cut
+
+init();
+
+my (@clean_files, @clean_dirs, %seen);
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+ my $ext=pkgext($package);
+ my $source_dir = default_sourcedir($package);
+
+ push(@clean_files, "debian/${ext}substvars")
+ unless excludefile("debian/${ext}substvars");
+
+ # These are all debhelper temp files, and so it is safe to
+ # wildcard them.
+ my @temp = glob("debian/$ext*.debhelper");
+ push(@clean_files, @temp);
+ push(@clean_dirs, "debian/.debhelper/generated/${package}/");
+ push(@clean_dirs , "${tmp}/")
+ unless excludefile($tmp);
+
+ push(@clean_dirs, "${source_dir}/")
+ if (not $seen{$source_dir}++ and not excludefile($source_dir));
+}
+
+xargs(\@clean_files, 'rm', '-f', '--') if @clean_files;
+xargs(\@clean_dirs, 'rm', '-fr', '--') if @clean_dirs;
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut