source: release-kits/wirk2/src/wirk2.cpp@ 17933

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

new binary that doesn't create the installer directory at startup, will trial it this way for a while

File size: 6.1 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 << "Wirk2 - Windows Release Kit for Greenstone2" << endl;
23 cout << "Helps you to create releases from the Repository" << endl << endl;
24
25 cout << "usage: wirk2 [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
46
47int main(int argc, char** argv ) {
48
49 string classpath, command;
50
51 //some checks
52 bool ok = true;
53 if ( getenv( "JAVA_HOME" ) == NULL ) {
54 cerr << "Please set JAVA_HOME before running wirk2" << endl;
55 ok = false;
56 }
57 if ( getenv( "WIRK2_HOME" ) == NULL ) {
58 cerr << "Please set WIRK2_HOME before running wirk2" << endl;
59 ok = false;
60 }
61 if ( !ok ) {
62 return -1;
63 }
64 //string PWD = getenv( "CD" );
65
66 //load environment variables
67 string JAVA_HOME = getenv( "JAVA_HOME" );
68 string WIRK2_HOME = getenv( "WIRK2_HOME" );
69
70 //get the pwd
71 string pwd;
72 system( "CD > cd.dat" );
73 ifstream file( "cd.dat" ) ;
74 getline(file, pwd);
75 file.close();
76 system( "del cd.dat" );
77
78 //set the classpath
79 classpath = pwd + "\\installer\\classes;" + JAVA_HOME + "\\lib\\tools.jar;" + WIRK2_HOME + "\\lib\\serializer.jar;" + WIRK2_HOME + "\\lib\\xalan.jar;" + WIRK2_HOME + "\\lib\\xercesImpl.jar;" + WIRK2_HOME + "\\lib\\xml-apis.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-antlr.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-apache-bcel.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-apache-bsf.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-apache-log4j.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-apache-oro.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-apache-regexp.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-apache-resolver.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-commons-logging.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-commons-net.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-icontract.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-jai.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-javamail.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-jdepend.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-jmf.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-jsch.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-junit.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-launcher.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-netrexx.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-nodeps.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-starteam.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-stylebook.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-swing.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-trax.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-vaj.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-weblogic.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-xalan1.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\ant-xslp.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\xercesImpl.jar;" + WIRK2_HOME + "\\packages\\ant\\lib\\xml-apis.jar;" + WIRK2_HOME + "\\packages\\ant-installer\\lib\\ai-icons-amaranth.jar;" + WIRK2_HOME + "\\packages\\ant-installer\\lib\\ai-icons-bluecurve.jar;" + WIRK2_HOME + "\\packages\\ant-installer\\lib\\ai-icons-crystalsvg.jar;" + WIRK2_HOME + "\\packages\\ant-installer\\lib\\ai-icons-eclipse.jar;" + WIRK2_HOME + "\\packages\\ant-installer\\lib\\ai-icons-krystaline.jar;" + WIRK2_HOME + "\\packages\\ant-installer\\lib\\ant-installer-ext.jar;" + WIRK2_HOME + "\\packages\\ant-installer\\lib\\ant-installer.jar;" + WIRK2_HOME + "\\packages\\ant-installer\\lib\\jgoodies-edited-1_2_2.jar;" + WIRK2_HOME + "\\packages\\ant-installer\\lib\\xercesImpl.jar;" + WIRK2_HOME + "\\packages\\ant-installer\\lib\\xml-apis.jar;" + WIRK2_HOME + "\\packages\\ant-installer\\classes";
80 putenv( ("CLASSPATH=" + classpath).c_str() );
81
82 //check that it worked
83 //string changed_classpath = getenv("CLASSPATH");
84 //cout << "classpath: " << changed_classpath << endl;
85
86 //create the command
87 command = WIRK2_HOME + "\\packages\\ant\\bin\\ant.bat -f " + WIRK2_HOME + "\\ant-scripts\\build.xml -addressing -Dwirk2.home=" + WIRK2_HOME;
88 //pass on the arguments
89 string a;
90 bool simMode = false;
91 for ( int i=0; i < argc; i++ ) {
92 a = argv[i];
93
94 if ( a.compare("-help") == 0 || a.compare("--help") == 0 ) {
95 show_help();
96 return 0;
97 } else if ( a.compare("-cp") == 0 || a.compare("--cp") == 0 ) {
98 cout << classpath;
99 return 0;
100 } else if ( a.compare("-sim") == 0) {
101 command = command + " " + a;
102 simMode = true;
103 } else {
104 command = command + " " + a;
105 }
106
107 }
108
109 //use forward slashes for everything else
110 //replace_all( pwd, "\\", "/" );
111
112 //set the basedir in the command
113 command = command + " -Dbasedir=";
114 command = command + pwd;
115
116
117
118 //command = command + ".";
119
120 cout
121 << "O-----------------------------------------O" << endl
122 << "| |" << endl
123 << "| WiRK2 |" << endl
124 << "| Windows Release Kit for Greenstone2 |" << endl
125 << "| |" << endl
126 << "O-----------------------------------------O" << endl
127 ;
128
129 cout << "pwd: " << pwd << endl;
130 cout << "command: " << command << endl;
131
132 system( command.c_str() );
133
134 return 0;
135
136}
Note: See TracBrowser for help on using the repository browser.