diff options
author | Guillem Jover <guillem@debian.org> | 2015-03-18 23:18:11 +0100 |
---|---|---|
committer | Guillem Jover <guillem@debian.org> | 2015-05-18 02:00:25 +0200 |
commit | a58dd78cb1667a26961f07ba80f0f2d676e41959 (patch) | |
tree | 366c5e95b14d223773529d3075a07a2d75ae5e8a /scripts/Dpkg/Dist/Files.pm | |
parent | b9cec509388cb444b1acf4baa69c90a4ef9e9241 (diff) | |
download | dpkg-a58dd78cb1667a26961f07ba80f0f2d676e41959.tar.gz |
Dpkg::Dist::Files: Add new filter() method
Diffstat (limited to 'scripts/Dpkg/Dist/Files.pm')
-rw-r--r-- | scripts/Dpkg/Dist/Files.pm | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/scripts/Dpkg/Dist/Files.pm b/scripts/Dpkg/Dist/Files.pm index eedea4222..719026f31 100644 --- a/scripts/Dpkg/Dist/Files.pm +++ b/scripts/Dpkg/Dist/Files.pm @@ -130,6 +130,20 @@ sub del_file { delete $self->{files}->{$filename}; } +sub filter { + my ($self, %opts) = @_; + my $remove = $opts{remove} // sub { 0 }; + my $keep = $opts{keep} // sub { 1 }; + + foreach my $filename (keys %{$self->{files}}) { + my $file = $self->{files}->{$filename}; + + if (not &$keep($file) or &$remove($file)) { + delete $self->{files}->{$filename}; + } + } +} + sub output { my ($self, $fh) = @_; my $str = ''; |