File Coverage

blib/lib/Progress/Any/SIGHandler.pm
Criterion Covered Total %
statement 14 27 51.8
branch 0 6 0.0
condition n/a
subroutine 5 9 55.5
pod 1 1 100.0
total 20 43 46.5


line stmt bran cond sub pod time code
1             package Progress::Any::SIGHandler;
2              
3 1     1   407676 use 5.010001;
  1         5  
4 1     1   9 use strict;
  1         2  
  1         33  
5 1     1   7 use warnings;
  1         8  
  1         76  
6              
7 1     1   743 use Progress::Any '$progress';
  1         11281  
  1         8  
8 1     1   776 use Progress::Any::Output ();
  1         898  
  1         382  
9              
10             our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
11             our $DATE = '2025-10-30'; # DATE
12             our $DIST = 'Progress-Any-SIGHandler'; # DIST
13             our $VERSION = '0.004'; # VERSION
14              
15             our $Template = 'Progress: %P/%T (%6.2p%%), %R';
16             our $Signal = 'USR1';
17              
18             sub import {
19 0     0     my ($package, %args) = @_;
20              
21             #if (my $val = delete $args{indicator}) {
22             # $Indicator = $val;
23             #}
24 0 0         if (defined(my $val = delete $args{template})) {
25 0           $Template = $val;
26             }
27 0 0         if (defined(my $val = delete $args{signal})) {
28 0           $Signal = $val;
29             }
30              
31 0 0         die "Unknown import argument(s): " . join(", ", sort keys %args)
32             if keys %args;
33              
34 0           install_sig_handler();
35             }
36              
37             sub install_sig_handler {
38 0     0 1   my $filled_message = "";
39              
40             Progress::Any::Output->add(
41             'Callback',
42             callback => sub {
43 0     0     my ($self, %args) = @_;
44 0           $filled_message = $progress->fill_template($Template);
45             },
46 0           );
47              
48             $SIG{ $Signal } = sub {
49 0     0     warn $filled_message, "\n";
50 0           };
51             }
52              
53             1;
54             # ABSTRACT: Add signal handler so your process can report progress when sent signal e.g. USR1
55              
56             __END__