File-RsyBak

 view release on metacpan or  search on metacpan

script/rsybak  view on Meta::CPAN

#            {
#                my $t = $task;
#                while (1) {
#                    last unless $t =~ s/\.\w+\z//;
#                    push @parents, $t;
#                }
#                push @parents, '';
#            }
#            for my $t (@parents) {
#                my $p = $indicators{$t};
#                if ($p->{state} ne 'started') {
#                    $p->{state}       = 'started';
#                    $p->{_start_time} = $now;
#                }
#            }
#        } else {
#            $self->{_elapsed} += $now - $self->{_start_time};
#            if ($val eq 'finished') {
#                die "BUG: Can't finish task '$task', pos is still < target"
#                    if defined($self->{target}) &&
#                        $self->{pos} < $self->{target};
#                $self->{_remaining} = 0;
#                $self->{_set_remaining_time} = $now;
#            }
#        }
#        $self->{state} = $val;
#    }
#
#  DONE:
#    return;
#}
#
#sub _should_update_output {
#    my ($self, $output, $now, $priority) = @_;
#
#    my $key = "$output";
#    if (!defined($output->{_mtime})) {
#        return 1;
#    } elsif ($self->{state} eq 'finished') {
#        return 1;
#    } elsif ($output->{force_update}) {
#        delete $output->{force_update};
#        return 1;
#    } elsif ($priority eq 'high') {
#        return 1;
#    } else {
#        if (!defined($output->{freq})) {
#            $output->{freq} = -0.5;
#        }
#        if ($output->{freq} == 0) {
#            return 1;
#        } if ($output->{freq} < 0) {
#            return 1 if $now >= $output->{_mtime} - $output->{freq};
#        } else {
#            return 1 if abs($self->{pos} - $output->{_pos}) >= $output->{freq};
#        }
#        return 0;
#    }
#}
#
#sub update {
#    my ($self, %args) = @_;
#
#    my $pos   = delete($args{pos}) // $self->{pos} + 1;
#    my $state = delete($args{state}) // 'started';
#    $self->_update(pos => $pos, state => $state);
#
#    my $message  = delete($args{message});
#    my $priority = delete($args{priority}) // 'normal';
#    die "Unknown argument(s) to update(): ".join(", ", keys(%args))
#        if keys(%args);
#
#    my $now = time();
#
#    {
#        last unless $ENV{PROGRESS} // 1;
#        my $task = $self->{task};
#        while (1) {
#            if ($outputs{$task}) {
#                for my $output (@{ $outputs{$task} }) {
#                    next unless $self->_should_update_output($output, $now, $priority);
#                    if (ref($message) eq 'CODE') {
#                        $message = $message->();
#                    }
#                    $output->update(
#                        indicator => $indicators{$task},
#                        message   => $message,
#                        priority  => $priority,
#                        time      => $now,
#                    );
#                    $output->{_mtime} = $now;
#                    $output->{_pos}   = $pos;
#                }
#            }
#            last unless $task =~ s/\.?\w+\z//;
#        }
#    }
#}
#
#sub start {
#    my $self = shift;
#    $self->_update(state => 'started');
#}
#
#sub stop {
#    my $self = shift;
#    $self->_update(state => 'stopped');
#}
#
#sub finish {
#    my ($self, %args) = @_;
#    $self->update(pos=>$self->{target}, state=>'finished', %args);
#}
#
#our $template_regex = qr{( # all=1
#                             %
#                             ( #width=2
#                                 -?\d+ )?
#                             ( #dot=3
#                                 \.?)
#                             ( #prec=4

script/rsybak  view on Meta::CPAN

#    my $which = shift;
#
#    my $opts;
#    if (@_ && ref($_[0]) eq 'HASH') {
#        $opts = shift;
#    } else {
#        $opts = {};
#    }
#
#    my $output = shift or die "Please specify output name";
#    $output =~ /\A(?:\w+(::\w+)*)?\z/ or die "Invalid output syntax '$output'";
#
#    my $task = $opts->{task} // "";
#
#    my $outputo;
#    unless (ref $outputo) {
#        my $outputpm = $output; $outputpm =~ s!::!/!g; $outputpm .= ".pm";
#        require "Progress/Any/Output/$outputpm";
#        no strict 'refs';
#        $outputo = "Progress::Any::Output::$output"->new(@_);
#    }
#
#    if ($which eq 'set') {
#        $Progress::Any::outputs{$task} = [$outputo];
#    } else {
#        $Progress::Any::outputs{$task} //= [];
#        push @{ $Progress::Any::outputs{$task} }, $outputo;
#    }
#
#    $outputo;
#}
#
#sub set {
#    my $class = shift;
#    $class->_set_or_add('set', @_);
#}
#
#sub add {
#    my $class = shift;
#    $class->_set_or_add('add', @_);
#}
#
#1;
#
#__END__
#
### Progress/Any/Output/Null.pm ###
#package Progress::Any::Output::Null;
#
#use 5.010;
#use strict;
#use warnings;
#
#our $VERSION = '0.214'; 
#
#sub new {
#    my ($class, %args) = @_;
#    bless \%args, $class;
#}
#
#sub update {
#    1;
#}
#
#1;
#
#__END__
#
### Progress/Any/Output/TermProgressBarColor.pm ###
#package Progress::Any::Output::TermProgressBarColor;
#
#our $DATE = '2018-03-27'; 
#our $VERSION = '0.245'; 
#
#use 5.010001;
#use strict;
#use warnings;
#
#use Color::ANSI::Util qw(ansifg ansibg);
#require Win32::Console::ANSI if $^O =~ /Win/;
#
#$|++;
#
#my ($ph1, $ph2);
#
#sub _patch {
#    my $out = shift;
#
#    return if $ph1;
#    require Monkey::Patch::Action;
#    if (defined &{"Log::Any::Adapter::Screen::hook_before_log"}) {
#        $ph1 = Monkey::Patch::Action::patch_package(
#            'Log::Any::Adapter::Screen', 'hook_before_log', 'replace',
#            sub {
#                $out->cleanup(1);
#                $Progress::Any::output_data{"$out"}{force_update} = 1;
#            }
#        );
#    } elsif (defined  &{"Log::ger::Output::Screen::hook_before_log"}) {
#        $ph1 = Monkey::Patch::Action::patch_package(
#            'Log::ger::Output::Screen', 'hook_before_log', 'replace',
#            sub {
#                $out->cleanup(1);
#                $Progress::Any::output_data{"$out"}{force_update} = 1;
#            }
#        );
#    }
#
#    if (defined &{"Log::Any::Adapter::Screen::hook_after_log"}) {
#        $ph2 = Monkey::Patch::Action::patch_package(
#            'Log::Any::Adapter::Screen', 'hook_after_log', 'replace',
#            sub {
#                my ($self, $msg) = @_;
#                print { $self->{_fh} } "\n" unless $msg =~ /\R\z/;
#
#                $out->keep_delay_showing if $out->{show_delay};
#
#                print { $self->{_fh} } $out->{_bar} if $out->{_bar};
#            }
#        );
#    } elsif (defined &{"Log::ger::Output::Screen::hook_after_log"}) {

script/rsybak  view on Meta::CPAN

#        (my $template = $args{template}) =~ s!<color \w+>|</color>!!g;
#        my $len = $self->_template_length($template) // 16;
#        $self->{_default_b_width} = $args{width} - $len;
#    }
#
#    ($self->{_template} = $self->{template}) =~ s!<color (\w+)>|<(/)color>!$1 ? ansifg($1) : "\e[0m"!eg;
#
#    $self;
#}
#
#sub _handle_unknown_conversion {
#    my %args = @_;
#
#    my $conv = $args{conv};
#    return () unless $conv eq 'b' || $conv eq 'B';
#
#    my $p = $args{indicator};
#    my $self = $args{self};
#
#    my $tottgt = $p->total_target;
#    my $totpos = $p->total_pos;
#
#    my $bar_bar = '';
#    my $bwidth = abs($args{width} // $self->{_default_b_width});
#
#    if ($tottgt) {
#        my $bfilled = int($totpos / $tottgt * $bwidth);
#        $bfilled = $bwidth if $bfilled > $bwidth;
#        $bar_bar = ("=" x $bfilled) . (" " x ($bwidth-$bfilled));
#    } else {
#        my $bfilled = int(0.15 * $bwidth);
#        $bfilled = 1 if $bfilled < 1;
#        $self->{_x}++;
#        if ($self->{_x} > $bwidth-$bfilled) {
#            $self->{_x} = 0;
#        }
#        $bar_bar = (" " x $self->{_x}) . ("=" x $bfilled) .
#            (" " x ($bwidth-$self->{_x}-$bfilled));
#    }
#
#    my $msg = $args{args}{message};
#    if ($conv eq 'B' && defined $msg) {
#        if ($msg =~ m!</elspan!) {
#            require String::Elide::Parts;
#            $msg = String::Elide::Parts::elide($msg, $bwidth);
#        }
#        my $mwidth;
#        if ($self->{wide}) {
#            $msg = Text::ANSI::WideUtil::ta_mbtrunc($msg, $bwidth);
#            $mwidth = Text::ANSI::WideUtil::ta_mbswidth($msg);
#        } else {
#            $msg = Text::ANSI::Util::ta_trunc($msg, $bwidth);
#            $mwidth = Text::ANSI::Util::ta_length($msg);
#        }
#        $bar_bar = $msg . substr($bar_bar, $mwidth);
#    }
#
#    return ("%s", $bar_bar);
#}
#
#sub update {
#    my ($self, %args) = @_;
#
#    return unless $ENV{PROGRESS_TERM_BAR} // $ENV{PROGRESS} // (-t $self->{fh});
#
#    my $now = time();
#
#    if (defined $self->{show_delay}) {
#        return if $now - $self->{show_delay} < $self->{_last_hide_time};
#    }
#
#    $self->_patch;
#
#    $self->cleanup;
#
#    my $p = $args{indicator};
#    my $is_finished = $p->{state} eq 'finished';
#    if ($is_finished) {
#        if ($self->{_lastlen}) {
#            $self->{_last_hide_time} = $now;
#        }
#        return;
#    }
#
#    my $bar = $p->fill_template(
#        {
#            template => $self->{_template},
#            handle_unknown_conversion => sub {
#                _handle_unknown_conversion(
#                    self => $self,
#                    @_,
#                );
#            },
#        },
#        %args,
#    );
#
#    my $len = Text::ANSI::Util::ta_length($bar);
#    $self->{_bar}   = $bar . ("\b" x $len);
#    print { $self->{fh} } $self->{_bar};
#    $self->{_lastlen} = $len;
#}
#
#sub cleanup {
#    my ($self, $dont_reset_lastlen) = @_;
#
#
#    my $ll = $self->{_lastlen};
#    return unless $ll;
#    print { $self->{fh} } " " x $ll, "\b" x $ll;
#    undef $self->{_lastlen} unless $dont_reset_lastlen;
#}
#
#sub keep_delay_showing {
#    my $self = shift;
#
#    $self->{_last_hide_time} = time();
#}
#
#sub DESTROY {
#    my $self = shift;



( run in 2.528 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )