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

Modified Files:
        ChangeLog Config.pm PkgVersion.pm 
Log Message:
Add --logfile flag to set explicit build-log filename (with %-exp).


Index: PkgVersion.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/PkgVersion.pm,v
retrieving revision 1.476
retrieving revision 1.477
diff -u -d -r1.476 -r1.477
--- PkgVersion.pm       7 Oct 2005 02:47:33 -0000       1.476
+++ PkgVersion.pm       7 Oct 2005 21:36:10 -0000       1.477
@@ -4797,7 +4797,9 @@
        my $self = shift;
        my $loggable = shift;
 
-       return if not Fink::Config::get_option("log_output");
+       # if user gave logfile filename, assume he meant to log output
+       return unless Fink::Config::get_option("log_output")
+               ||        Fink::Config::get_option("logfile");
 
        # stop logging if we were doing so
        # (redirect STD* back to their original file descriptors)
@@ -4813,16 +4815,29 @@
 
        # start logging if caller wants us to do so
        if ($loggable) {
-               $output_logfile = '/tmp/fink-build-log_' . $self->get_name() . 
'_' .
-                       $self->get_fullversion() . '_' .
-                       strftime('%Y.%m.%d-%H.%M.%S', localtime);
+               $output_logfile = Fink::Config::get_option("logfile");
+               if ($output_logfile) {
+                       $output_logfile = &expand_percent(
+                               $output_logfile,
+                               $self->{_expand},
+                               'build log filename'
+                       );
 
-               # make sure logfile does not already exist (blindly writing to
-               # a file with a predictable filename in a world-writable
-               # directory as root is Bad)
-               sysopen my $log_fh, $output_logfile, O_WRONLY | O_CREAT | O_EXCL
-                       or die "Can't write logfile $output_logfile: $!\n";
-               close $log_fh;
+                       # No tests of explicitly given filename...trust that 
user
+                       # knows what he's doing.
+               } else {
+                       # no user-specified, so we'll use default
+                       $output_logfile = '/tmp/fink-build-log_' . 
$self->get_name() . '_' .
+                               $self->get_fullversion() . '_' .
+                               strftime('%Y.%m.%d-%H.%M.%S', localtime);
+
+                       # make sure logfile does not already exist (blindly 
writing to
+                       # a file with a predictable filename in a world-writable
+                       # directory as root is Bad)
+                       sysopen my $log_fh, $output_logfile, O_WRONLY | O_CREAT 
| O_EXCL
+                               or die "Can't write logfile $output_logfile: 
$!\n";
+                       close $log_fh;
+               }
 
                # stash original STD* file descriptors
                open $orig_fh{stdout}, '>&', STDOUT

Index: Config.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/Config.pm,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -d -r1.65 -r1.66
--- Config.pm   7 Oct 2005 02:47:33 -0000       1.65
+++ Config.pm   7 Oct 2005 21:36:10 -0000       1.66
@@ -224,6 +224,7 @@
                [ 'build-as-nobody'    => \$opts{build_as_nobody},      'see 
man page'  ],
                [ 'maintainer|m'       => \$opts{maintainermode},       'see 
man page'  ],
                [ 'log-output|l!'      => \$opts{log_output},           'see 
man page'  ],
+               [ 'logfile=s'          => \$opts{logfile},                      
'see man page'  ],
                [ 'trees|t=s@'         => $opts{include_trees},         'see 
man page'  ],
                [ 'exclude-trees|T=s@' => $opts{exclude_trees},         'see 
man page'  ],
 #              [ 'interactive|i'      => \$opts{interactive}, 'see man page'   
        ],

Index: ChangeLog
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/ChangeLog,v
retrieving revision 1.1163
retrieving revision 1.1164
diff -u -d -r1.1163 -r1.1164
--- ChangeLog   7 Oct 2005 02:47:33 -0000       1.1163
+++ ChangeLog   7 Oct 2005 21:36:10 -0000       1.1164
@@ -1,3 +1,8 @@
+2005-10-07  Daniel Macks  <[EMAIL PROTECTED]>
+
+       * Config.pm, PkgVersion.pm: Implement --logfile cmdline flag to
+       specify buildlog filename (with %-expansion)
+
 2005-10-06  Daniel Macks  <[EMAIL PROTECTED]>
 
        * Config.pm, PkgVersion.pm: Store copies of filehandles as



-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Fink-commits mailing list
Fink-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-commits

Reply via email to