Update of /cvsroot/fink/fink/perlmod/Fink
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27958

Modified Files:
        PkgVersion.pm ChangeLog 
Log Message:
DocFiles handles conditionals, recursive copying of dirs, and implicit
renaming dir1/dir2/file: to file.dir1.dir2


Index: PkgVersion.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/PkgVersion.pm,v
retrieving revision 1.466
retrieving revision 1.467
diff -u -d -r1.466 -r1.467
--- PkgVersion.pm       14 Sep 2005 20:23:20 -0000      1.466
+++ PkgVersion.pm       22 Sep 2005 03:04:23 -0000      1.467
@@ -3211,20 +3211,34 @@
 
        # generate commands to install documentation files
        if ($self->has_param("DocFiles")) {
-               my (@docfiles, $docfile, $docfilelist);
+               my $files = $self->param_expanded("DocFiles");
+               $files =~ s/\s+/ /g; # Make it one line
+               $files = $self->conditional_space_list($files,
+                       "DocFiles of ".$self->get_fullname()." in 
".$self->get_info_filename
+               );
+
                $install_script .= "\n/usr/bin/install -d -m 755 
%i/share/doc/%n";
 
-               @docfiles = split(/\s+/, $self->param("DocFiles"));
-               $docfilelist = "";
-               foreach $docfile (@docfiles) {
-                       if ($docfile =~ /^(.+)\:(.+)$/) {
-                               $install_script .= "\n/usr/bin/install -c -p -m 
644 $1 %i/share/doc/%n/$2";
+               my ($file, $source, $target);
+               foreach $file (split /\s+/, $files) {
+                       $file =~ s/\%/\%\%/g;   # reprotect for later 
%-expansion
+                       if ($file =~ /^(.+)\:(.+)$/) {
+                               # simple renaming
+                               # globs in source okay, dirs in target not 
auto-created
+                               $source = $1;
+                               $target = $2;
+                       } elsif ($file =~ /^(.+):$/) {
+                               # flatten declared nesting with automatic 
renaming
+                               # (dir1/dir2/.../foo => foo.dir1.dir2....)
+                               $source = $1;
+                               my @dirs = split /\//, $source;
+                               $target = join '.', (pop @dirs), @dirs;
                        } else {
-                               $docfilelist .= " $docfile";
+                               # simple copying (nesting maintained, globs 
okay)
+                               $source = $file;
+                               $target = '';
                        }
-               }
-               if ($docfilelist ne "") {
-                       $install_script .= "\n/usr/bin/install -c -p -m 
644$docfilelist %i/share/doc/%n/";
+                       $install_script .= "\n/bin/cp -r $source 
%i/share/doc/%n/$target";
                }
        }
 

Index: ChangeLog
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/ChangeLog,v
retrieving revision 1.1143
retrieving revision 1.1144
diff -u -d -r1.1143 -r1.1144
--- ChangeLog   21 Sep 2005 18:20:22 -0000      1.1143
+++ ChangeLog   22 Sep 2005 03:04:23 -0000      1.1144
@@ -1,4 +1,9 @@
-2005-09-21     Alexander Hansen <[EMAIL PROTECTED]>
+2005-09-21  Daniel Macks  <[EMAIL PROTECTED]>
+
+       * PkgVersion.pm: DocFiles handles conditionals, recursive copying
+       of dirs, and implicit renaming dir1/dir2/file: to file.dir1.dir2
+
+2005-09-21  Alexander Hansen <[EMAIL PROTECTED]>
 
        * NetAccess.pm: wget versions >= 1.10 use -no-verbose instead of 
        --non-verbose (arguably more GNU-standard).  In order that we may 
release



-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. 
Download it for free - -and be entered to win a 42" plasma tv or your very
own Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
Fink-commits mailing list
Fink-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-commits

Reply via email to