OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Time-Progress?expand=0&rev=1
226 lines
5.2 KiB
RPMSpec
226 lines
5.2 KiB
RPMSpec
#
|
|
# spec file for package perl-Time-Progress
|
|
#
|
|
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
|
|
Name: perl-Time-Progress
|
|
Version: 1.7
|
|
Release: 1
|
|
License: CHECK(GPL+ or Artistic)
|
|
%define cpan_name Time-Progress
|
|
Summary: Elapsed and estimated finish time reporting.
|
|
Url: http://search.cpan.org/dist/Time-Progress/
|
|
Group: Development/Libraries/Perl
|
|
Source: http://www.cpan.org/authors/id/C/CA/CADE/%{cpan_name}-%{version}.tar.gz
|
|
BuildArch: noarch
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
BuildRequires: perl
|
|
BuildRequires: perl-macros
|
|
%{perl_requires}
|
|
|
|
%description
|
|
Shortest time interval that can be measured is 1 second. The available
|
|
methods are:
|
|
|
|
* new
|
|
|
|
my $p = new Time::Progress;
|
|
|
|
Returns new object of Time::Progress class and starts the timer. It also
|
|
sets min and max values to 0 and 100, so the next *report* calls will
|
|
default to percents range.
|
|
|
|
* restart
|
|
|
|
restarts the timer and clears the stop mark. optionally restart() may act
|
|
also as attr() for setting attributes:
|
|
|
|
$p->restart( min => 1, max => 5 );
|
|
|
|
is the same as:
|
|
|
|
$p->attr( min => 1, max => 5 );
|
|
$p->restart();
|
|
|
|
If you need to count things, you can set just 'max' attribute since 'min'
|
|
is already set to 0 when object is constructed by new():
|
|
|
|
$p->restart( max => 42 );
|
|
|
|
* stop
|
|
|
|
Sets the stop mark. this is only useful if you do some work, then finish,
|
|
then do some work that shouldn't be timed and finally report. Something
|
|
like:
|
|
|
|
$p->restart;
|
|
# do some work here...
|
|
$p->stop;
|
|
# do some post-work here
|
|
print $p->report;
|
|
# `post-work' will not be timed
|
|
|
|
Stop is useless if you want to report time as soon as work is finished
|
|
like:
|
|
|
|
$p->restart;
|
|
# do some work here...
|
|
print $p->report;
|
|
|
|
* continue
|
|
|
|
Clears the stop mark. (mostly useless, perhaps you need to *restart*?)
|
|
|
|
* attr
|
|
|
|
Sets and returns internal values for attributes. Available attributes
|
|
are:
|
|
|
|
* min
|
|
|
|
This is the min value of the items that will follow (used to calculate
|
|
estimated finish time)
|
|
|
|
* max
|
|
|
|
This is the max value of all items in the even (also used to calculate
|
|
estimated finish time)
|
|
|
|
* format
|
|
|
|
This is the default *report* format. It is used if *report* is called
|
|
without parameters.
|
|
|
|
*attr* returns array of the set attributes:
|
|
|
|
my ( $new_min, $new_max ) = $p->attr( min => 1, max => 5 );
|
|
|
|
If you want just to get values use undef:
|
|
|
|
my $old_format = $p->attr( format => undef );
|
|
|
|
This way of handling attributes is a bit heavy but saves a lot of
|
|
attribute handling functions. *attr* will complain if you pass odd number
|
|
of parameters.
|
|
|
|
* report
|
|
|
|
*report* is the most complex method in this package. :)
|
|
|
|
expected arguments are:
|
|
|
|
$p->report( format, [current_item] );
|
|
|
|
_format_ is string that will be used for the result string. Recognized
|
|
special sequences are:
|
|
|
|
* %l
|
|
|
|
elapsed seconds
|
|
|
|
* %L
|
|
|
|
elapsed time in minutes in format MM:SS
|
|
|
|
* %e
|
|
|
|
remaining seconds
|
|
|
|
* %E
|
|
|
|
remaining time in minutes in format MM:SS
|
|
|
|
* %p
|
|
|
|
percentage done in format PPP.P%
|
|
|
|
* %f
|
|
|
|
estimated finish time in format returned by *localtime()*
|
|
|
|
* %b
|
|
|
|
* %B
|
|
|
|
progress bar which looks like:
|
|
|
|
##############......................
|
|
|
|
%b takes optional width:
|
|
|
|
%40b -- 40-chars wide bar
|
|
%9b -- 9-chars wide bar
|
|
%b -- 79-chars wide bar (default)
|
|
|
|
Parameters can be ommited and then default format set with *attr* will be
|
|
used.
|
|
|
|
Sequences 'L', 'l', 'E' and 'e' can have width also:
|
|
|
|
%10e
|
|
%5l
|
|
...
|
|
|
|
Estimate time calculations can be used only if min and max values are set
|
|
(see *attr* method) and current item is passed to *report*! if you want
|
|
to use the default format but still have estimates use it like this:
|
|
|
|
$p->format( undef, 45 );
|
|
|
|
If you don't give current item (step) or didn't set proper min/max value
|
|
then all estimate sequences will have value `n/a'.
|
|
|
|
You can freely mix reports during the same event.
|
|
|
|
* elapsed
|
|
|
|
* estimate
|
|
|
|
helpers -- return elapsed/estimate seconds.
|
|
|
|
* elapsed_str
|
|
|
|
* estimate_str
|
|
|
|
helpers -- return elapsed/estimated string in format:
|
|
|
|
"elapsed time is MM:SS min.\n"
|
|
"remaining time is MM:SS min.\n"
|
|
|
|
all helpers need one argument--current item.
|
|
|
|
%prep
|
|
%setup -q -n %{cpan_name}-%{version}
|
|
|
|
%build
|
|
%{__perl} Makefile.PL INSTALLDIRS=vendor
|
|
%{__make} %{?_smp_mflags}
|
|
|
|
%check
|
|
%{__make} test
|
|
|
|
%install
|
|
%perl_make_install
|
|
%perl_process_packlist
|
|
%perl_gen_filelist
|
|
|
|
%files -f %{name}.files
|
|
%defattr(-,root,root,755)
|
|
%doc Changes README
|
|
|
|
%changelog
|