]> git.ipfire.org Git - people/stevee/pakfire.git/blobdiff - tools/perl.prov
ccache optimizations: Use /tmp and enable compression.
[people/stevee/pakfire.git] / tools / perl.prov
index 73bec513b12fe5021c5815aeb6bc117f3c506398..9886dd93fef5fed6479f8c8b5c285331f90fbc96 100644 (file)
@@ -69,7 +69,7 @@ foreach $module (sort keys %require) {
     # operators. Also I will need to change the processing of the
     # $RPM_* variable when I upgrade.
 
-    print "perl($module)=$require{$module}\n";
+    print "perl($module) = $require{$module}\n";
   }
 }
 
@@ -81,20 +81,23 @@ sub process_file {
 
   my ($file) = @_;
   chomp $file;
-  
-  open(FILE, "<$file") || return;
+
+  if (!open(FILE, $file)) {
+    warn("$0: Warning: Could not open file '$file' for reading: $!\n");
+    return;
+  }
 
   my ($package, $version, $incomment, $inover) = ();
 
   while (<FILE>) {
-    
+
     # skip the documentation
 
     # we should not need to have item in this if statement (it
     # properly belongs in the over/back section) but people do not
     # read the perldoc.
 
-    if (m/^=(head[1-4]|pod|item)/) {
+    if (m/^=(head[1-4]|pod|for|item)/) {
       $incomment = 1;
     }
 
@@ -102,7 +105,7 @@ sub process_file {
       $incomment = 0;
       $inover = 0;
     }
-    
+
     if (m/^=(over)/) {
       $inover = 1;
     }
@@ -114,7 +117,7 @@ sub process_file {
     if ($incomment || $inover) {
        next;
     }
-    
+
     # skip the data section
     if (m/^__(DATA|END)__$/) {
       last;
@@ -125,7 +128,7 @@ sub process_file {
     # false positives as if they were provided packages (really ugly).
 
     if (m/^\s*package\s+([_:a-zA-Z0-9]+)\s*;/) {
-      $package=$1;
+      $package = $1;
       undef $version;
       if ($package eq 'main') {
         undef $package;
@@ -134,7 +137,7 @@ sub process_file {
         # the package definition is broken up over multiple blocks.
         # In that case, don't stomp a previous $VERSION we might have
         # found.  (See BZ#214496.)
-        $require{$package}=undef unless (exists $require{$package});
+        $require{$package} = undef unless (exists $require{$package});
       }
     }
 
@@ -149,44 +152,44 @@ sub process_file {
     #CGI/Apache.pm:$VERSION = (qw$Revision: 1.9 $)[1];
     #DynaLoader.pm:$VERSION = $VERSION = "1.03";     # avoid typo warning
     #General.pm:$Config::General::VERSION = 2.33;
-    # 
+    #
     # or with the new "our" pragma you could (read will) see:
     #
     #    our $VERSION = '1.00'
-    if (($package) && (m/^\s*(our\s+)?\$(\Q$package\E::)?VERSION\s*=\s+/)) {
+    if ($package && m/^\s*(our\s+)?\$(\Q$package\E::)?VERSION\s*=\s+/) {
 
       # first see if the version string contains the string
       # '$Revision' this often causes bizzare strings and is the most
       # common method of non static numbering.
 
       if (m/(\$Revision: (\d+[.0-9]+))/) {
-       $version= $2; 
-      } elsif (m/[\'\"]?(\d+[.0-9]+)[\'\"]?/) {
-       
-       # look for a static number hard coded in the script
-       
-       $version= $1; 
+        $version = $2;
+      } elsif (m/['"]?(\d+[.0-9]+)['"]?/) {
+
+        # look for a static number hard coded in the script
+
+        $version = $1;
       }
-      $require{$package}=$version;
+      $require{$package} = $version;
     }
-  
+
     # Allow someone to have a variable that defines virtual packages
-    # The variable is called $RPM_Provides.  It must be scoped with 
-    # "our", but not "local" or "my" (just would not make sense). 
-    # 
+    # The variable is called $RPM_Provides.  It must be scoped with
+    # "our", but not "local" or "my" (just would not make sense).
+    #
     # For instance:
-    #  
+    #
     #     $RPM_Provides = "blah bleah"
-    # 
+    #
     # Will generate provides for "blah" and "bleah".
     #
     # Each keyword can appear multiple times.  Don't
     #  bother with datastructures to store these strings,
     #  if we need to print it print it now.
-       
-    if ( m/^\s*(our\s+)?\$RPM_Provides\s*=\s*["'](.*)['"]/i) {
+
+    if (m/^\s*(our\s+)?\$RPM_Provides\s*=\s*["'](.*)['"]/i) {
       foreach $_ (split(/\s+/, $2)) {
-       print "$_\n";
+        print "$_\n";
       }
     }
 
@@ -195,5 +198,5 @@ sub process_file {
   close(FILE) ||
     die("$0: Could not close file: '$file' : $!\n");
 
-  return ;
+  return;
 }