From 0719d1bf551601acd7722d07b8d12ba66f27f936 Mon Sep 17 00:00:00 2001 From: ryan Date: Mon, 24 Apr 2017 13:59:41 -0700 Subject: [PATCH] Regular backup of data just in case. --- progress_multipass.pl | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 progress_multipass.pl diff --git a/progress_multipass.pl b/progress_multipass.pl new file mode 100755 index 0000000..aff7fc5 --- /dev/null +++ b/progress_multipass.pl @@ -0,0 +1,39 @@ +#!/usr/bin/env perl + +use lib './lib'; +use strict; + +use Dist; +use Storable; +use Time::HiRes qw/time/; +use DateTime; + +my $pass = $ARGV[0]; +my $start_time = time(); +my $start_dt = DateTime->now(); +my $cache = retrieve 'everything.stor'; + +my $first_count =()= grep { + $cache->{jobstatus}{$_}{status} ne 'success' && + $cache->{jobstatus}{$_}{tested} == $pass + } keys $cache->{jobstatus}->%*; + +my $dists =()= grep { + $cache->{jobstatus}{$_}{status} ne 'success' + } keys $cache->{jobstatus}->%*; + +while (1) { + sleep(2); + my $cache = eval {retrieve 'everything.stor'}; + next unless $cache; + my $count =()= grep { + $cache->{jobstatus}{$_}{status} ne 'success' && + $cache->{jobstatus}{$_}{tested} == $pass + } keys $cache->{jobstatus}->%*; + + my $rate = ($count-$first_count)/(time()-$start_time); + my $tocomplete = ($rate == 0? sub{-1} : sub{($dists-$count)/$rate})->(); + my $final_dt = DateTime->now(time_zone => 'America/Los_Angeles')->add(seconds => $tocomplete); + printf "%d/%d [%02.2f%%] %0.2f/min %s %0.2f\n", $count, $dists, 100*$count/$dists, $rate*60, $final_dt->iso8601, $tocomplete; + +};