diff options
-rw-r--r-- | scripts/Dpkg/Dist/Files.pm | 15 | ||||
-rw-r--r-- | scripts/t/Dpkg_Dist_Files.t | 16 | ||||
-rw-r--r-- | scripts/t/Dpkg_Dist_Files/files-fragment-a | 1 | ||||
-rw-r--r-- | scripts/t/Dpkg_Dist_Files/files-fragment-b | 1 |
4 files changed, 32 insertions, 1 deletions
diff --git a/scripts/Dpkg/Dist/Files.pm b/scripts/Dpkg/Dist/Files.pm index c5d5fb0e1..2c4ab53ce 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 01205f8b0..4dccffe7f 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 000000000..fd6461d52 --- /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 000000000..2acf22fdb --- /dev/null +++ b/scripts/t/Dpkg_Dist_Files/files-fragment-b @@ -0,0 +1 @@ +pkg-frag-b_0.0_arch.type section priority |