The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Test::AutoBuild::Monitor::Pipe - Monitor progress through a pipe

SYNOPSIS

  use Test::AutoBuild::Monitor::Pipe

  my $monitor = Test::AutoBuild::Pipe->new(
                      options => {
                        path => "/var/lib/builder/monitor",
                        mode = 0644
                      },
                      env => \%env);

  # Emit some events
  $monitor->notify("begin-stage", "build", time);
  $monitor->notify("end-stage", "build", time, $status);

DESCRIPTION

This module sends events down a pipe, one line per event. The data is formatted in the scheme:

   begin-stage('build', '12450052')
   end-stage('build', '12452345', 'failed')

CONFIGURATION

Along with the standard configuration parameters for Test::AutoBuild::Monitor, this module expects two options to be set:

path

The full path to the FIFO pipe. The pipe will be created if it does not already exist

mask

The permissions mask to use when creating the file, in decimal, not octal. Defaults to 493, which is 0755 in octal, if not specified.

EXAMPLE

  pipe = {
    label = FIFO monitor
    module = Test::AutoBuild::Monitor::Pipe
    options = {
      path = /var/lib/builder/monitor
      # 0755 in decimal
      mask = 493
    }
  }

METHODS

$monitor->init(%params);

This method initializes a new monitor & is called automatically by the new method. The %params parameters are passed through from the new method.

$monitor->process($event_name, @args);

This method writes the event to the FIFO pipe and flushes the output stream

AUTHORS

Daniel Berrange <dan@berrange.com>

COPYRIGHT

Copyright (C) 2005 Daniel Berrange <dan@berrange.com>

SEE ALSO

perl(1), Test::AutoBuild::Monitor