1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
#include "viewercolorpct.h"
#include "perform.h"
#include "bu/plugger.h"
#include <math.h>
PluginInterface2( colorpct, ViewerColorPct, Viewer, "Mike Buland", 0, 1 );
ViewerColorPct::ViewerColorPct() :
bRunClean( true )
{
}
ViewerColorPct::~ViewerColorPct()
{
}
void ViewerColorPct::beginCommand( Action::eAction nAct, const std::string &sTarget )
{
Cmd cmd;
if( sCmd.empty() )
cmd.nLevel = 0;
else
cmd.nLevel = sCmd.front().nLevel+1;
cmd.bCmdClean = true;
cmd.sTarget = sTarget;
sCmd.push_front( cmd );
}
void ViewerColorPct::endCommand()
{
if( sCmd.front().bCmdClean == false )
printf("\n");
sCmd.pop_front();
if(sCmd.empty())
iCC++;
}
void ViewerColorPct::indent()
{
if( sCmd.empty() ) return;
int jmax = sCmd.front().nLevel;
for( int j = 0; j < jmax; j++ )
{
printf(" ");
}
}
void ViewerColorPct::printHead()
{
if( sCmd.front().bCmdClean == true )
{
bRunClean = false;
sCmd.front().bCmdClean = false;
indent();
if(sCmd.size() > 1)
printf("\033[37;22m--- \033[36m%s\033[37m ---\033[0m\n", sCmd.front().sTarget.c_str() );
else
printf("\033[37;1m--- [\033[32m%d/%d\033[37m] \033[36m%s\033[37m ---\033[0m\n", iCC, iTC, sCmd.front().sTarget.c_str() );
}
}
void ViewerColorPct::printPerform(const char *sRule, const char *sTarget)
{
int iPct = (int)round(
((double)sCmd.front().iCP/(double)sCmd.front().iTP)*100.0
);
if(sCmd.size() > 1)
printf( "\033[37;22m[\033[32m%3d%%\033[37m] \033[35m%8s\033[37m: %s\033[0m\n", iPct, sRule, sTarget );
else
printf( "\033[37;1m[\033[32m%3d%%\033[37m] \033[35m%8s\033[37m: %s\033[0m\n", iPct, sRule, sTarget );
}
void ViewerColorPct::beginRequiresCheck( bool bCached, const std::string &sName )
{
printHead();
indent();
printPerform("deps", sName.c_str());
}
void ViewerColorPct::endRequiresCheck()
{
sCmd.front().iCP++;
}
void ViewerColorPct::skipRequiresCheck( bool bCached, const std::string &sName )
{
sCmd.front().iCP++;
}
void ViewerColorPct::beginPerform( Perform *pPerform )
{
printHead();
indent();
printPerform(pPerform->getRule().c_str(), pPerform->getTarget().c_str());
}
void ViewerColorPct::endPerform()
{
sCmd.front().iCP++;
}
void ViewerColorPct::skipPerform( Perform *pPerform )
{
sCmd.front().iCP++;
}
void ViewerColorPct::beginPerforms( int nCount )
{
sCmd.front().iTP = nCount*2;
sCmd.front().iCP = 1;
}
void ViewerColorPct::beginAction( const std::string &sName, int nCommands )
{
iTC = nCommands;
iCC = 1;
}
void ViewerColorPct::endAction()
{
if( bRunClean == true )
{
printf("Nothing to be done.\n\n");
}
printf("\033[0m");
}
|