fedora-security/tools package-release,1.1,1.2
Josh Bressers (bressers)
fedora-extras-commits at redhat.com
Fri May 5 02:13:18 UTC 2006
Author: bressers
Update of /cvs/fedora/fedora-security/tools
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv18207
Modified Files:
package-release
Log Message:
Use fuzzy matching rather than strict matching.
Index: package-release
===================================================================
RCS file: /cvs/fedora/fedora-security/tools/package-release,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- package-release 2 May 2006 20:29:31 -0000 1.1
+++ package-release 5 May 2006 02:13:16 -0000 1.2
@@ -17,37 +17,55 @@
# Global variables
my ($owner_file, $mirror_host, $mirror_path, @releases);
-my ($distro, $package, $desc, $owner, $qa, $cc);
$owner_file='http://cvs.fedora.redhat.com/viewcvs/*checkout*/owners/owners.list?root=extras';
$mirror_host='download.fedora.redhat.com';
$mirror_path='/pub/fedora/linux/extras';
@releases=qw(3 4 5 development);
-my $owner_content = get($owner_file)
- or die "Couldn't get $owner_file";
+sub get_owner_content {
+ my $match = pop;
-foreach (split(/\n/, $owner_content)) {
- next if /^#/;
- chomp;
+ my ($distro, $package, $desc, $owner, $qa, $cc);
- ($distro, $package, $desc, $owner, $qa, $cc) = split(/\|/, $_);
+ my %owner;
+
+ my $owner_content = get($owner_file)
+ or die "Couldn't get $owner_file";
+
+ foreach (split(/\n/, $owner_content)) {
+ next if /^#/;
+ chomp;
+
+ ($distro, $package, $desc, $owner, $qa, $cc) = split(/\|/, $_);
+
+ next if ( $package !~ m/$match/i);
+
+ $owner{$package} = {};
+ $owner{$package}->{'product'} = $distro;
+ $owner{$package}->{'package'} = $package;
+ $owner{$package}->{'description'} = $desc;
+ $owner{$package}->{'owner'} = $owner;
+ $owner{$package}->{'qacontact'} = $qa;
+ $owner{$package}->{'cclist'} = $cc;
+ }
+
+ return %owner;
- last if $package eq $ARGV[0];
- undef $package; # If we don't undef this, we fall through
}
-unless ($package) {
- print "Could not find package $ARGV[0] in $owner_file\n";
+my $package = $ARGV[0];
+
+my %owner = get_owner_content($package);
+
+if (!keys(%owner)) {
+ print "Could not find package \"$package\" in $owner_file\n";
exit 1;
}
-print "Found package $package in owners.list:\n";
-print " Distro:\t$distro\n";
-print " Desc:\t\t$desc\n";
-print " Owner:\t$owner\n";
-print " CC:\t\t$cc\n";
-print " Releases and versions:\n";
+foreach (keys(%owner)) {
+print "Found package $_ in owners.list:\n";
+}
my $ftp = Net::FTP->new($mirror_host, Debug => 0)
or die "Cannot connect to $mirror_host: $@";
@@ -56,7 +74,7 @@
foreach my $release (@releases) {
- my ($f, $dir, $files, $rev, $ver);
+ my ($f, $dir, $files, $rev, $ver, $name);
$dir = "$mirror_path/$release/SRPMS";
$release eq "development" && ($release = "dev");
@@ -66,11 +84,13 @@
foreach my $f (@$files) {
chomp($f);
$f =~ s/$dir\///;
- next unless $f =~ /^$package-(.*)\.src\.rpm$/;
- next if $1 =~ /-.*-/;
+ next unless $f =~ /^(.*$package.*)-([^\-]*)-([^\-]*)\.src\.rpm$/;
+ $name = $1;
+ $ver = $2;
+ $rev = $3;
- ($ver, $rev) = $1 =~ /^([^-]+)-([^-]+)$/;
-
- print " $release\t$ver\t$rev\t$dir/$f\n";
+ print " $release\t$name\t$ver\t$rev\t$f\n";
}
}
+
+$ftp->quit;
More information about the scm-commits
mailing list