summaryrefslogtreecommitdiffstats
path: root/dh_testdir
diff options
context:
space:
mode:
Diffstat (limited to 'dh_testdir')
-rwxr-xr-xdh_testdir72
1 files changed, 72 insertions, 0 deletions
diff --git a/dh_testdir b/dh_testdir
new file mode 100755
index 0000000..db7f7ce
--- /dev/null
+++ b/dh_testdir
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+dh_testdir - test directory before building Debian package
+
+=cut
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
+
+our $VERSION = DH_BUILTIN_VERSION;
+
+=head1 SYNOPSIS
+
+B<dh_testdir> [S<I<debhelper options>>] [S<I<file> ...>]
+
+=head1 DESCRIPTION
+
+B<dh_testdir> tries to make sure that you are in the correct directory when
+building a Debian package. It makes sure that the file F<debian/control>
+exists, as well as any other files you specify. If not,
+it exits with an error.
+
+=head1 OPTIONS
+
+=over 4
+
+=item I<file> ...
+
+Test for the existence of these files too.
+
+=back
+
+=cut
+
+# This command is completely useless when called from dh(1) as dh will
+# have attempted to read d/control before it even constructs the
+# command sequences. Accordingly, there is no doubt that the
+# following is unconditionally true:
+#
+# PROMISE: DH NOOP
+
+# Run before init because init will try to read debian/control and
+# we want a nicer error message.
+checkfile('debian/control');
+
+init(inhibit_log => 1);
+
+foreach my $file (@ARGV) {
+ checkfile($file);
+}
+
+sub checkfile {
+ my $file=shift;
+ if (! -e $file) {
+ error("\"$file\" not found. Are you sure you are in the correct directory?");
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut