diff options
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 59 |
1 files changed, 54 insertions, 5 deletions
diff --git a/src/main.cpp b/src/main.cpp index 132fb18..70a3ffc 100644 --- a/src/main.cpp +++ b/src/main.cpp | |||
@@ -1,16 +1,65 @@ | |||
1 | #include "builder.h" | 1 | #include "builder.h" |
2 | #include "viewerplain.h" | 2 | #include "viewerplain.h" |
3 | #include "viewerpercent.h" | 3 | #include "viewerpercent.h" |
4 | #include "paramproc.h" | ||
5 | #include "staticstring.h" | ||
6 | |||
7 | class Param : public ParamProc | ||
8 | { | ||
9 | public: | ||
10 | Param() : | ||
11 | sFile("build.conf") | ||
12 | { | ||
13 | addHelpBanner("Build r?\n\n"); | ||
14 | addParam("file", 'f', &sFile, | ||
15 | "Set the input script, default: build.conf"); | ||
16 | addParam('p', mkproc(Param::procViewPercent), | ||
17 | "Switch to percent view."); | ||
18 | addParam("help", mkproc(ParamProc::help), | ||
19 | "This help"); | ||
20 | pViewer = new ViewerPlain; | ||
21 | } | ||
22 | |||
23 | virtual ~Param() | ||
24 | { | ||
25 | delete pViewer; | ||
26 | } | ||
27 | |||
28 | virtual int cmdParam( int argc, char *argv[] ) | ||
29 | { | ||
30 | if( sAction > 0 ) | ||
31 | { | ||
32 | printf("You can only specify one action per command line.\n\n"); | ||
33 | exit( 1 ); | ||
34 | } | ||
35 | sAction = argv[0]; | ||
36 | return 1; | ||
37 | } | ||
38 | |||
39 | int procViewPercent( int argc, char *argv[] ) | ||
40 | { | ||
41 | delete pViewer; | ||
42 | pViewer = new ViewerPercent; | ||
43 | } | ||
44 | |||
45 | std::string sFile; | ||
46 | StaticString sAction; | ||
47 | Viewer *pViewer; | ||
48 | |||
49 | private: | ||
50 | }; | ||
4 | 51 | ||
5 | int main( int argc, char *argv[] ) | 52 | int main( int argc, char *argv[] ) |
6 | { | 53 | { |
7 | ViewerPercent p; | 54 | Param prm; |
8 | Builder bld( p ); | 55 | prm.process( argc, argv ); |
56 | |||
57 | Builder bld( *prm.pViewer ); | ||
9 | 58 | ||
10 | bld.load("build.conf"); | 59 | bld.load( prm.sFile.c_str() ); |
11 | 60 | ||
12 | if( argc >= 2 ) | 61 | if( prm.sAction > 0 ) |
13 | bld.build( argv[1] ); | 62 | bld.build( prm.sAction ); |
14 | else | 63 | else |
15 | bld.build(); | 64 | bld.build(); |
16 | /* | 65 | /* |