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 )