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

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

make sure we copile gli with the version numbers changed, and properly delete all .svn directories from dist

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 << "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;" + 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";
66 putenv( ("CLASSPATH=" + classpath).c_str() );
67 putenv( ("SystemDrive=C:").c_str() );
68
69 //create the command
70 command = "\"\"" + WIRK3_HOME + "\\packages\\ant\\bin\\ant.bat\" -f \"" + WIRK3_HOME + "\\ant-scripts\\build.xml\" -addressing \"-Dwirk3.home=" + WIRK3_HOME + "\"";
71 //pass on the arguments
72 string a;
73 bool simMode = false;
74 for ( int i=0; i < argc; i++ ) {
75 a = argv[i];
76
77 if ( a.compare("-help") == 0 || a.compare("--help") == 0 ) {
78 show_help();
79 return 0;
80 } else if ( a.compare("-cp") == 0 || a.compare("--cp") == 0 ) {
81 cout << classpath;
82 return 0;
83 } else if ( a.compare("-sim") == 0) {
84 command = command + " " + a;
85 simMode = true;
86 } else {
87 command = command + " " + a;
88 }
89
90 }
91
92 //create directories
93 if ( !simMode ) {
94 system( "IF NOT EXIST installer\\classes MKDIR installer\\classes" );
95 }
96
97
98 //use forward slashes for everything else
99 //replace_all( pwd, "\\", "/" );
100
101 //set the basedir in the command
102 command = command + " \"-Dbasedir=";
103 command = command + pwd + "\"\"";
104
105 //command = command + ".";
106
107 cout
108 << "O-----------------------------------------O" << endl
109 << "| |" << endl
110 << "| WiRK3 |" << endl
111 << "| Windows Release Kit for Greenstone3 |" << endl
112 << "| |" << endl
113 << "O-----------------------------------------O" << endl
114 ;
115
116 cout << "pwd: " << pwd << endl;
117 cout << "command: " << command.c_str() << endl;
118
119 system( command.c_str() );
120
121 return 0;
122
123}
Note: See TracBrowser for help on using the repository browser.