diff options
author | rillig <rillig@pkgsrc.org> | 2022-08-16 19:40:24 +0000 |
---|---|---|
committer | rillig <rillig@pkgsrc.org> | 2022-08-16 19:40:24 +0000 |
commit | 67d8cafa32f21619c70e368b5dbbfff0bc0ac0cb (patch) | |
tree | 04fb5ad2ae2056d011417fc0eef6a81a04a57111 /pkgtools/lintpkgsrc | |
parent | c145080be4b23253ad8c54700636915f5a6487a1 (diff) | |
download | pkgsrc-67d8cafa32f21619c70e368b5dbbfff0bc0ac0cb.tar.gz |
lintpkgsrc: cleanup: condense package_globmatch
Diffstat (limited to 'pkgtools/lintpkgsrc')
-rwxr-xr-x | pkgtools/lintpkgsrc/files/lintpkgsrc.pl | 34 |
1 files changed, 13 insertions, 21 deletions
diff --git a/pkgtools/lintpkgsrc/files/lintpkgsrc.pl b/pkgtools/lintpkgsrc/files/lintpkgsrc.pl index e7a1cdf6e43..fb7017eefaf 100755 --- a/pkgtools/lintpkgsrc/files/lintpkgsrc.pl +++ b/pkgtools/lintpkgsrc/files/lintpkgsrc.pl @@ -1,5 +1,5 @@ #!@PERL5@ -# $NetBSD: lintpkgsrc.pl,v 1.102 2022/08/16 19:20:06 rillig Exp $ +# $NetBSD: lintpkgsrc.pl,v 1.103 2022/08/16 19:40:24 rillig Exp $ # Written by David Brownlee <abs@netbsd.org>. # @@ -829,29 +829,21 @@ sub glob2regex($glob) { sub package_globmatch($pkgmatch) { if ($pkgmatch =~ /^ ([^*?[]+) (<|>|<=|>=|-) (\d[^*?[{]*) $/x) { - # TODO: rename $matchpkgname to be more accurate. - my ($matchpkgname, $op, $matchver) = ($1, $2, $3); - - if (my @pkgvers = $pkgdb->pkgvers_by_pkgbase($matchpkgname)) { - foreach my $pkgver (@pkgvers) { - if ($op eq '-') { - if ($pkgver->pkgversion eq $matchver) { - $matchver = undef; - last; - } - } else { - if (pkgversion_cmp($pkgver->pkgversion, $op, $matchver)) { - $matchver = undef; - last; - } - } + my ($match_base, $op, $match_ver) = ($1, $2, $3); + + my @pkgvers = $pkgdb->pkgvers_by_pkgbase($match_base); + foreach my $pkgver (@pkgvers) { + if ($op eq '-' + ? $pkgver->pkgversion eq $match_ver + : pkgversion_cmp($pkgver->pkgversion, $op, $match_ver)) { + return ($match_base, undef); } + } - if ($matchver && $op ne '-') { - $matchver = "$op$matchver"; - } + if (@pkgvers && $match_ver && $op ne '-') { + $match_ver = "$op$match_ver"; } - ($matchpkgname, $matchver); + ($match_base, $match_ver); } elsif ($pkgmatch =~ /^ ([^[]+) - ([\d*?{[].*) $/x) { my ($matchpkgname, $matchver) = ($1, $2); |