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

Last change on this file since 17631 was 17631, checked in by oranfry, 15 years ago

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

File size: 6.3 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 //some checks
51 bool ok = true;
52 if ( getenv( "JAVA_HOME" ) == NULL ) {
53 cerr << "Please set JAVA_HOME before running wirk3" << endl;
54 ok = false;
55 }
56 if ( getenv( "WIRK3_HOME" ) == NULL ) {
57 cerr << "Please set WIRK2_HOME before running wirk3" << endl;
58 ok = false;
59 }
60 if ( !ok ) {
61 return -1;
62 }
63
64 //influential environment variables
65 string JAVA_HOME = getenv( "JAVA_HOME" );
66 string WIRK3_HOME = getenv( "WIRK3_HOME" );
67 //string PWD = getenv( "CD" );
68
69 //get the pwd
70 string pwd;
71 system( "CD > cd.dat" );
72 ifstream file( "cd.dat" ) ;
73 getline(file, pwd);
74 file.close();
75 system( "del cd.dat" );
76
77 //set the classpath
78 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;" + WIRK3_HOME + "\\ant-scripts\\tasks\\svnant\\lib\\svnjavahl.jar;" + WIRK3_HOME + "\\ant-scripts\\tasks\\svnant\\lib\\svnant.jar;" + WIRK3_HOME + "\\ant-scripts\\tasks\\svnant\\lib\\svnClientAdapter.jar";
79 putenv( ("CLASSPATH=" + classpath).c_str() );
80 putenv( "SystemDrive=C:" );
81
82 //create the command
83 command = "\"\"" + WIRK3_HOME + "\\packages\\ant\\bin\\ant.bat\" -f \"" + WIRK3_HOME + "\\ant-scripts\\build.xml\" -addressing \"-Dwirk3.home=" + WIRK3_HOME + "\"";
84 //pass on the arguments
85 string a;
86 bool simMode = false;
87 for ( int i=0; i < argc; i++ ) {
88 a = argv[i];
89
90 if ( a.compare("-help") == 0 || a.compare("--help") == 0 ) {
91 show_help();
92 return 0;
93 } else if ( a.compare("-cp") == 0 || a.compare("--cp") == 0 ) {
94 cout << classpath;
95 return 0;
96 } else if ( a.compare("-sim") == 0) {
97 command = command + " " + a;
98 simMode = true;
99 } else {
100 command = command + " " + a;
101 }
102
103 }
104
105 //use forward slashes for everything else
106 //replace_all( pwd, "\\", "/" );
107
108 //set the basedir in the command
109 command = command + " \"-Dbasedir=";
110 command = command + pwd + "\"\"";
111
112 //command = command + ".";
113
114 cout
115 << "O-----------------------------------------O" << endl
116 << "| |" << endl
117 << "| WiRK3 |" << endl
118 << "| Windows Release Kit for Greenstone3 |" << endl
119 << "| |" << endl
120 << "O-----------------------------------------O" << endl
121 ;
122
123 cout << "pwd: " << pwd << endl;
124 cout << "command: " << command.c_str() << endl;
125
126 system( command.c_str() );
127
128 return 0;
129
130}
Note: See TracBrowser for help on using the repository browser.