source: release-kits/wirk3/src/wirk3.cpp@ 17045

Last change on this file since 17045 was 17045, checked in by oranfry, 16 years ago

put the help screen into wirk3, after all it is documented as being there

File size: 5.8 KB
Line 
1#include <windows.h>
2
3#include <fstream>
4#include <iostream>
5#include <string>
6
7using namespace std;
8
9void replace_all ( std::string & str, std::string const & pattern, std::string const & replacement ) {
10
11 std::string::size_type start = str.find( pattern, 0 );
12
13 while ( start != str.npos ) {
14 str.replace( start, pattern.size(), replacement );
15 start = str.find( pattern, start+replacement.size() );
16 }
17
18}
19
20void show_help() {
21
22 cout << "Wirk3 - Windows Release Kit for Greenstone3" << endl;
23 cout << "Helps you to create releases from the Repository" << endl << endl;
24
25 cout << "usage: wirk3 [args]" << endl;
26 cout << " -sim" << endl;
27 cout << " simulation only, don't actually do anything" << endl << endl;
28
29 cout << " -help" << endl;
30 cout << " show this help screen" << endl << endl;
31
32 cout << " -from <target>" << endl;
33 cout << " start execution from the target with the given target address" << endl << endl;
34
35 cout << " -to <target>" << endl;
36 cout << " stop execution just before the target with the given target address" << endl << endl;
37
38 cout << " -descend <target>" << endl;
39 cout << " execute only the target with the given address, including subtargets" << endl << endl;
40
41 cout << " -cp" << endl;
42 cout << " show the classpath being used by wirk2" << endl << endl;
43
44}
45
46int main(int argc, char** argv ) {
47
48 string classpath, command;
49
50 //influential environment variables
51 string JAVA_HOME = getenv( "JAVA_HOME" );
52 string WIRK3_HOME = getenv( "WIRK3_HOME" );
53 //string PWD = getenv( "CD" );
54
55 //get the pwd
56 string pwd;
57 system( "CD > cd.dat" );
58 ifstream file( "cd.dat" ) ;
59 getline(file, pwd);
60 file.close();
61 system( "del cd.dat" );
62
63
64 //set the classpath
65 classpath = pwd + "\\installer\\classes;" + JAVA_HOME + "\\lib\\tools.jar;" + WIRK3_HOME + "\\lib\\serializer.jar;" + WIRK3_HOME + "\\lib\\xalan.jar;" + WIRK3_HOME + "\\lib\\xercesImpl.jar;" + WIRK3_HOME + "\\lib\\xml-apis.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-antlr.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-apache-bcel.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-apache-bsf.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-apache-log4j.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-apache-oro.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-apache-regexp.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-apache-resolver.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-commons-logging.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-commons-net.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-icontract.jar;" + WIRK3_HOME + "\\packages\\ant-1.6.5\\lib\\ant-jai.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-javamail.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-jdepend.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-jmf.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-jsch.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-junit.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-launcher.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-netrexx.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-nodeps.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-starteam.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-stylebook.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-swing.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-trax.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-vaj.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-weblogic.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-xalan1.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\ant-xslp.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\xercesImpl.jar;" + WIRK3_HOME + "\\packages\\ant\\lib\\xml-apis.jar;" + WIRK3_HOME + "\\packages\\ant-installer\\lib\\ai-icons-amaranth.jar;" + WIRK3_HOME + "\\packages\\ant-installer\\lib\\ai-icons-bluecurve.jar;" + WIRK3_HOME + "\\packages\\ant-installer\\lib\\ai-icons-crystalsvg.jar;" + WIRK3_HOME + "\\packages\\ant-installer\\lib\\ai-icons-eclipse.jar;" + WIRK3_HOME + "\\packages\\ant-installer\\lib\\ai-icons-krystaline.jar;" + WIRK3_HOME + "\\packages\\ant-installer\\lib\\ant-installer-ext.jar;" + WIRK3_HOME + "\\packages\\ant-installer\\lib\\ant-installer.jar;" + WIRK3_HOME + "\\packages\\ant-installer\\lib\\jgoodies-edited-1_2_2.jar;" + WIRK3_HOME + "\\packages\\ant-installer\\lib\\xercesImpl.jar;" + WIRK3_HOME + "\\packages\\ant-installer\\lib\\xml-apis.jar;" + WIRK3_HOME + "\\packages\\ant-installer\\classes";
66 putenv( ("CLASSPATH=" + classpath).c_str() );
67
68 //create the command
69 command = WIRK3_HOME + "\\packages\\ant\\bin\\ant.bat -f " + WIRK3_HOME + "\\ant-scripts\\build.xml -addressing -Dwirk3.home=" + WIRK3_HOME;
70 //pass on the arguments
71 string a;
72 bool simMode = false;
73 for ( int i=0; i < argc; i++ ) {
74 a = argv[i];
75
76 if ( a.compare("-help") == 0 ) {
77 show_help();
78 return 0;
79 } else if ( a.compare("-cp") == 0) {
80 cout << classpath;
81 return 0;
82 } else if ( a.compare("-sim") == 0) {
83 command = command + " " + a;
84 simMode = true;
85 } else {
86 command = command + " " + a;
87 }
88
89 }
90
91 //create directories
92 if ( !simMode ) {
93 system( "IF NOT EXIST installer\\classes MKDIR installer\\classes" );
94 }
95
96
97 //use forward slashes for everything else
98 //replace_all( pwd, "\\", "/" );
99
100 //set the basedir in the command
101 command = command + " -Dbasedir=";
102 command = command + pwd;
103
104
105
106 //command = command + ".";
107
108 cout
109 << "O-----------------------------------------O" << endl
110 << "| |" << endl
111 << "| WiRK3 |" << endl
112 << "| Windows Release Kit for Greenstone3 |" << endl
113 << "| |" << endl
114 << "O-----------------------------------------O" << endl
115 ;
116
117 cout << "pwd: " << pwd << endl;
118 cout << "command: " << command << endl;
119
120 system( command.c_str() );
121
122 return 0;
123
124}
Note: See TracBrowser for help on using the repository browser.