source: subversion/utils/tilesAtHome/tahlib.pm @ 2488

Last change on this file since 2488 was 2488, checked in by deelkar, 13 years ago

fixed typo in tahlib.pm

File size: 2.1 KB
Line 
1use strict; 
2use tahconfig;
3
4# =====================================================================
5# The following is duplicated from tilesGen.pl
6# =====================================================================
7
8#-----------------------------------------------------------------------------
9# Prints status message without newline, overwrites previous message
10# (if $newline set, starts new line after message)
11#-----------------------------------------------------------------------------
12sub statusMessage 
13{
14    my ($msg, $newline) = @_;
15
16    if ($Config{Verbose})
17    {
18        print STDERR "$msg\n";
19        return;
20    }
21
22    my $toprint = sprintf("[#%d %3d%% %s] %s%s ", $progressJobs, $progressPercent+.5, $currentSubTask, $msg, ($newline) ? "" : "...");
23    print STDERR "\r";
24    print STDERR " " x $lastmsglen;
25    print STDERR "\r$toprint";
26    if ($newline)
27    {
28        $lastmsglen = 0;
29        print STDERR "\n";
30    }
31    else
32    {
33        $lastmsglen = length($toprint);
34    }
35}
36
37#-----------------------------------------------------------------------------
38# Used to display task completion. Only for verbose mode.
39#-----------------------------------------------------------------------------
40sub doneMessage
41{
42    my $msg = shift;
43    $msg = "done" if ($msg eq "");
44
45    if ($Config{Verbose})
46    {
47        print STDERR "$msg\n";
48        return;
49    }
50}
51
52#-----------------------------------------------------------------------------
53# A sleep function with visible countdown
54#-----------------------------------------------------------------------------
55sub talkInSleep
56{
57    my ($message, $duration) = @_;
58    if ($Config{Verbose})
59    {
60        print STDERR "$message: sleeping $duration seconds\n";
61        sleep $duration;
62        return;
63    }
64
65    for (my $i = 0; $i< $duration; $i++)
66    {
67        my $totalseconds = time() - $progstart;
68        statusMessage(sprintf("%s. Idle for %d:%02d (%d%% idle) ", 
69                $message,
70                $idleFor/60, $idleFor%60,
71                $totalseconds ? $idleSeconds * 100 / $totalseconds : 100));
72        sleep 1;
73        $idleFor++;
74        $idleSeconds++;
75    }
76}
77
Note: See TracBrowser for help on using the repository browser.