[dpkg] 158/187: Dpkg::Dist::Files: Add new load_dir method
Reiner Herrmann
reiner at reiner-h.de
Sun Nov 6 12:46:40 UTC 2016
This is an automated email from the git hooks/post-receive script.
deki-guest pushed a commit to branch master
in repository dpkg.
commit f89e053f3e3a6f0f73a9ce2c8dd2c72db93d44bb
Author: Guillem Jover <guillem at debian.org>
Date: Thu Nov 3 03:38:44 2016 +0100
Dpkg::Dist::Files: Add new load_dir method
This method scans all fragment files inside a directory and loads
each of them.
---
scripts/Dpkg/Dist/Files.pm | 15 +++++++++++++++
scripts/t/Dpkg_Dist_Files.t | 16 +++++++++++++++-
scripts/t/Dpkg_Dist_Files/files-fragment-a | 1 +
scripts/t/Dpkg_Dist_Files/files-fragment-b | 1 +
4 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/scripts/Dpkg/Dist/Files.pm b/scripts/Dpkg/Dist/Files.pm
index c5d5fb0..2c4ab53 100644
--- a/scripts/Dpkg/Dist/Files.pm
+++ b/scripts/Dpkg/Dist/Files.pm
@@ -20,6 +20,8 @@ use warnings;
our $VERSION = '0.01';
+use IO::Dir;
+
use Dpkg::Gettext;
use Dpkg::ErrorHandling;
@@ -101,6 +103,19 @@ sub parse {
return $count;
}
+sub load_dir {
+ my ($self, $dir) = @_;
+
+ my $count = 0;
+ my $dh = IO::Dir->new($dir) or syserr(g_('cannot open directory %s'), $dir);
+
+ while (defined(my $file = $dh->read)) {
+ $count += $self->load("$dir/$file");
+ }
+
+ return $count;
+}
+
sub get_files {
my $self = shift;
diff --git a/scripts/t/Dpkg_Dist_Files.t b/scripts/t/Dpkg_Dist_Files.t
index 01205f8..4dccffe 100644
--- a/scripts/t/Dpkg_Dist_Files.t
+++ b/scripts/t/Dpkg_Dist_Files.t
@@ -16,7 +16,7 @@
use strict;
use warnings;
-use Test::More tests => 25;
+use Test::More tests => 26;
use_ok('Dpkg::Dist::Files');
@@ -156,6 +156,20 @@ is_deeply($dist->get_file('another:filename'),
is($dist->output, $expected, 'Added source files');
$expected = <<'FILES';
+BY-HAND-file webdocs optional
+other_0.txt text optional
+pkg-arch_2.0.0_amd64.deb admin required
+pkg-frag-a_0.0_arch.type section priority
+pkg-frag-b_0.0_arch.type section priority
+pkg-indep_0.0.1-2_all.deb net standard
+pkg-templ_1.2.3_arch.type section priority
+FILES
+
+$dist->reset();
+$dist->load_dir($datadir) or error('cannot parse fragment files');
+is($dist->output(), $expected, 'Parse fragment directory');
+
+$expected = <<'FILES';
pkg-arch_2.0.0_amd64.deb admin required
pkg-indep_0.0.1-2_all.deb net standard
pkg-templ_1.2.3_arch.type section priority
diff --git a/scripts/t/Dpkg_Dist_Files/files-fragment-a b/scripts/t/Dpkg_Dist_Files/files-fragment-a
new file mode 100644
index 0000000..fd6461d
--- /dev/null
+++ b/scripts/t/Dpkg_Dist_Files/files-fragment-a
@@ -0,0 +1 @@
+pkg-frag-a_0.0_arch.type section priority
diff --git a/scripts/t/Dpkg_Dist_Files/files-fragment-b b/scripts/t/Dpkg_Dist_Files/files-fragment-b
new file mode 100644
index 0000000..2acf22f
--- /dev/null
+++ b/scripts/t/Dpkg_Dist_Files/files-fragment-b
@@ -0,0 +1 @@
+pkg-frag-b_0.0_arch.type section priority
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/dpkg.git
More information about the Reproducible-commits
mailing list