Author: ranger
Date: Thu Feb 14 21:51:20 2008
New Revision: 1134

URL: 
http://svn.finkproject.org/websvn/listing.php?sc=1&rev=1134&repname=user%3a+ranger
Log:
write out a packagelist suitable for buildfink

Modified:
    trunk/experimental/scripts/tree-diff.pl

Modified: trunk/experimental/scripts/tree-diff.pl
URL: 
http://svn.finkproject.org/websvn/diff.php?path=/trunk/experimental/scripts/tree-diff.pl&rev=1134&repname=user%3a+ranger
==============================================================================
--- trunk/experimental/scripts/tree-diff.pl (original)
+++ trunk/experimental/scripts/tree-diff.pl Thu Feb 14 21:51:20 2008
@@ -16,7 +16,8 @@
 
 use vars qw(
        $ID
-       $OUTPUT
+       $PACKAGES_XML_OUTPUT
+       $PACKAGELIST_TXT_OUTPUT
        $HANDLE
        $PACKAGE_FILE
        $TREE
@@ -32,9 +33,11 @@
 
 ($REVISION) = q$Revision$ =~ /(\d+)/;
 
+$ID     = 1;
 $HANDLE = IO::Handle->new();
-$OUTPUT = IO::Handle->new();
-$ID     = 1;
+
+$PACKAGES_XML_OUTPUT = IO::Handle->new();
+$PACKAGELIST_TXT_OUTPUT = IO::Handle->new();
 
 my $from = shift;
 my $to   = shift;
@@ -70,11 +73,14 @@
 
 #print Dumper($ALL_FILES, $FROM_FILES, $TO_FILES);
 
+open ($PACKAGELIST_TXT_OUTPUT, 
'>/Users/ranger/rcs/scripts/buildfink/packagelist.txt');
+
 new_package_file();
 
 for my $file (sort keys %$ALL_FILES) {
        my @categories = qw(Packages);
        my $sortkey = ucfirst(basename($file));
+       my $packagename = undef;
 
        my $type = "";
        if ($file =~ /\.info$/) {
@@ -96,15 +102,39 @@
                $text .= "== File in Pango/Cairo ==\n<pre><nowiki>";
                while (my $line = <$HANDLE>) {
                        $text .= $line;
-                       if ($file =~ /\.info$/ and $line =~ 
/^\s*maintainer\s*:\s*\'?\"?([^\<]+?)\'?\"?\s*</i) {
-                               if (defined $1 and $1 !~ /^\s*$/) {
-                                       $maintainer = $1;
-                                       if (exists 
$MAINTAINERS->{lc($maintainer)}) {
-                                               $maintainer = 
$MAINTAINERS->{lc($maintainer)};
-                                       } else {
-                                               $MAINTAINERS->{lc($maintainer)} 
= $maintainer;
+                       if ($file =~ /\.info$/) {
+                               if ($line =~ 
/^\s*maintainer\s*:\s*\'?\"?([^\<]+?)\'?\"?\s*</i) {
+                                       if (defined $1 and $1 !~ /^\s*$/) {
+                                               $maintainer = $1;
+                                               if (exists 
$MAINTAINERS->{lc($maintainer)}) {
+                                                       $maintainer = 
$MAINTAINERS->{lc($maintainer)};
+                                               } else {
+                                                       
$MAINTAINERS->{lc($maintainer)} = $maintainer;
+                                               }
+                                               push(@categories, "Maintained 
By $maintainer");
                                        }
-                                       push(@categories, "Maintained By 
$maintainer");
+                               }
+                               if (not defined $packagename and $line =~ 
/^\s*package:\s*(\S+?)\s*$/i) {
+                                       $packagename = $1;
+                                       $packagename =~ 
s/\%type_pkg\[-altivec\]//;
+                                       $packagename =~ 
s/\%type_pkg\[-atlas\]/-atlas/;
+                                       $packagename =~ 
s/\%type_pkg\[bluefish\]/-gnome2/;
+                                       $packagename =~ s/\%type_pkg\[gecko\]//;
+                                       $packagename =~ 
s/\%type_pkg\[-gtk\]/-gtk/;
+                                       $packagename =~ 
s/\%type_pkg\[-gtk2\]/-gtk2/;
+                                       $packagename =~ 
s/\%type_pkg\[-gui\]/-gui/;
+                                       $packagename =~ 
s/\%type_pkg\[-mpi\]/-mpi/;
+                                       $packagename =~ 
s/\%type_pkg\[-noprint\]//;
+                                       $packagename =~ s/\%type_pkg\[-nox\]//;
+                                       $packagename =~ 
s/\%type_pkg\[perl\]/588/;
+                                       $packagename =~ 
s/\%type_pkg\[postgresql\]/82/;
+                                       $packagename =~ 
s/\%type_pkg\[python\]/25/;
+                                       $packagename =~ 
s/\%type_pkg\[ruby\]/18/;
+                                       $packagename =~ s/\%type_pkg\[ssl\]//;
+                                       $packagename =~ 
s/\%type_pkg\[-svg\]/-svg/;
+                                       $packagename =~ 
s/\%type_pkg\[uitype\]/-gtk/;
+                                       $packagename =~ 
s/\%type_pkg\[-x11\]/-x11/;
+                                       $packagename =~ 
s/\%type_pkg\[-xembed\]//;
                                }
                        }
                }
@@ -118,14 +148,15 @@
        } elsif (not exists $FROM_FILES->{$file}) {
                print "> $file: exists in $to, but not in $from\n";
                push(@categories, 'Added In Pangocairo', 'Modified Packages', 
$type . ' Added In Pangocairo');
+               print $PACKAGELIST_TXT_OUTPUT $packagename, "\n" if (defined 
$packagename);
        } elsif ($FROM_FILES->{$file} ne $TO_FILES->{$file}) {
                print "! $file: has changed\n";
                if ($file =~ /\.info$/) {
                        my $diff = `diff -Nurd "$from/$file" "$to/$file"`;
                        $text .= "== Diff vs. HEAD 
==\n<pre><nowiki>$diff</nowiki></pre>\n";
                }
-
                push(@categories, 'Updated In Pangocairo', 'Modified Packages', 
$type . ' Updated In Pangocairo');
+               print $PACKAGELIST_TXT_OUTPUT $packagename, "\n" if (defined 
$packagename);
        } else {
                print "  $file\n";
                push(@categories, 'Unchanged In Pangocairo', $type . ' 
Unchanged In Pangocairo');
@@ -149,7 +180,7 @@
        my $timestamp = sprintf('%04d-%02d-%02dT%02d:%02d:%02dZ', $year, $mon, 
$mday, $hour, $min, $sec);
 
        $ID++;
-       print $OUTPUT <<END;
+       print $PACKAGES_XML_OUTPUT <<END;
   <page>
     <title>$file</title>
     <id>$ID</id>
@@ -167,8 +198,9 @@
 
 }
 
-print $OUTPUT "</mediawiki>\n";
-close($OUTPUT);
+print $PACKAGES_XML_OUTPUT "</mediawiki>\n";
+close($PACKAGES_XML_OUTPUT);
+close($PACKAGELIST_TXT_OUTPUT);
 
 sub clean_up_text {
        my $text = shift;
@@ -181,11 +213,11 @@
 }
 
 sub new_package_file() {
-       close ($OUTPUT);
+       close ($PACKAGES_XML_OUTPUT);
 
        $PACKAGE_FILE="/Users/ranger/tmp/packages-$ID.xml";
-       open ($OUTPUT, ">$PACKAGE_FILE");
-       print $OUTPUT <<END;
+       open ($PACKAGES_XML_OUTPUT, ">$PACKAGE_FILE");
+       print $PACKAGES_XML_OUTPUT <<END;
 <mediawiki xmlns="http://www.mediawiki.org/xml/export-0.3/"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.3/ 
http://www.mediawiki.org/xml/export-0.3.xsd"; version="0.3" xml:lang="en">
   <siteinfo>
     <sitename>PangoCairo</sitename>


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Fink-commits mailing list
[email protected]
http://news.gmane.org/gmane.os.apple.fink.cvs

Reply via email to