aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Blin <oblin@mandriva.com>2008-02-12 09:42:32 +0000
committerOlivier Blin <oblin@mandriva.com>2008-02-12 09:42:32 +0000
commit0bbfac683aa5d01aa04a27669bb451faa30ee687 (patch)
tree27f9c4e3a1577d5aa1d4832e8310e9e99fadb34e
parentcfd11a6f379b677daf64ea576dabbae775dc7031 (diff)
downloadmga-youri-submit-0bbfac683aa5d01aa04a27669bb451faa30ee687.tar
mga-youri-submit-0bbfac683aa5d01aa04a27669bb451faa30ee687.tar.gz
mga-youri-submit-0bbfac683aa5d01aa04a27669bb451faa30ee687.tar.bz2
mga-youri-submit-0bbfac683aa5d01aa04a27669bb451faa30ee687.tar.xz
mga-youri-submit-0bbfac683aa5d01aa04a27669bb451faa30ee687.zip
do not make rpmlint errors fatal anymore (asked by fcrozat)
-rw-r--r--lib/Youri/Submit/Check/Rpmlint.pm20
1 files changed, 16 insertions, 4 deletions
diff --git a/lib/Youri/Submit/Check/Rpmlint.pm b/lib/Youri/Submit/Check/Rpmlint.pm
index 95c31e4..a58e283 100644
--- a/lib/Youri/Submit/Check/Rpmlint.pm
+++ b/lib/Youri/Submit/Check/Rpmlint.pm
@@ -7,7 +7,8 @@ Youri::Submit::Check::Rpmlint - Rpmlint-based check
=head1 DESCRIPTION
-This check plugin wraps rpmlint, and reject packages triggering rpmlint errors.
+This check plugin wraps rpmlint, and reject packages triggering results
+declared as fatal.
=cut
@@ -24,6 +25,10 @@ Specific parameters:
=over
+=item results $results
+
+List of rpmlint result id considered as fatal.
+
=item path $path
Path to the rpmlint executable (default: /usr/bin/rpmlint)
@@ -40,13 +45,18 @@ Specific rpmlint configuration.
sub _init {
my $self = shift;
my %options = (
+ results => undef,
path => '/usr/bin/rpmlint',
config => '',
@_
);
+ croak "no results to check" unless $options{results};
+ croak "fatal should be an arrayref" unless ref $options{results} eq 'ARRAY';
+
$self->{_config} = $options{config};
$self->{_path} = $options{path};
+ $self->{_pattern} = '^(?:' . join('|', @{$options{results}}) . ')$';
}
sub run {
@@ -58,10 +68,12 @@ sub run {
my $command = "$self->{_path} -f $self->{_config} " . $package->as_file;
open(my $RPMLINT, "$command |") or die "Can't run $command: $!";
while (my $line = <$RPMLINT>) {
- $line =~ /^E: \S+ (\S+)(.*)$/ # old rpmlint format
- || $line =~ /^\S+: E: (\S+)(.*)$/ or next; # new rpmlint format
+ $line =~ /^[EW]: \S+ (\S+)(.*)$/ # old rpmlint format
+ || $line =~ /^\S+: [EW]: (\S+)(.*)$/ or next; # new rpmlint format
my ($id, $value) = ($1, $2);
- push(@errors, "$id$value");
+ if ($id =~ /$self->{_pattern}/o) {
+ push(@errors, "$id$value");
+ }
}
return @errors;