Hi Santiago,

Quoting Santiago Vila (2018-11-29 14:32:08)
> Previously, I asked for a way to choose the timestamp format in the filename.

welcome back! :D

> As you explained, this would involve a new configuration option, and I can
> understand that you don't like it.
> 
> My use case is now a little bit different:
> 
> I call sbuild from a shell script. In addition to the build log
> itself, I keep "logs" for two other things: The memory used during the
> build (at one-second intervals) and the junk which remains in /tmp
> after the build.
> 
> I'd like those three logs to have the same timestamp.

Okay. Why?

> Also, because some packages FTBFS randomly and in those cases I want to know
> how randomly they fail, sometimes I tell my autobuilders to build the same
> package over and over again.
> 
> Because of this I'd also like to use sub-second precision, to avoid
> several build logs to have the same filename.

I think I don't understand something here. How would two build logs have the
same file name with second-precision but not the same file name with
sub-second-precision?

> So, what I would really need is a way to provide the timestamp externally.

Do you? Why not just put the build logs into two distinct directories?

> Something like this:
> 
> export SBUILD_LOG_TIMESTAMP=$(date "+%Y%m%dT%H%M%S.%3NZ")
> sbuild -d buster some-package
> 
> The following patch would make the above to work:
> 
> --- a/lib/Sbuild/Build.pm
> +++ b/lib/Sbuild/Build.pm
> @@ -2970,7 +2970,11 @@ sub open_build_log {
>      } else {
>         $filename .= $self->get('Package');
>      }
> -    $filename .= '_' . $self->get('Host Arch') . "-$date";
> +    my $log_timestamp = $ENV{'SBUILD_LOG_TIMESTAMP'};
> +    if ($log_timestamp eq "") {
> +      $log_timestamp = $date;
> +    }
> +    $filename .= '_' . $self->get('Host Arch') . "-$log_timestamp";
>      $filename .= ".build" if $self->get_conf('SBUILD_MODE') ne 'buildd';
>  
>      open($saved_stdout, ">&STDOUT") or warn "Can't redirect stdout\n";
> 
> (Sorry for my poor perl, which I don't really speak, I'm almost sure
> there is a shorter way to do the same).
> 
> Would honoring an environment variable like this, when it does exist,
> be more acceptable for you than the new configuration option we were
> discussing before?

The environment variable name should probably be different because what you are
supplying there is not just a timestamp but more of a build log filename suffix
because any string could be passed that way.

Thanks!

cheers, josch

Attachment: signature.asc
Description: signature

Reply via email to