summaryrefslogtreecommitdiff
path: root/l10ntools
diff options
context:
space:
mode:
authorGert van Valkenhoef <g.h.m.van.valkenhoef@rug.nl>2012-02-14 20:19:37 +0100
committerCaolán McNamara <caolanm@redhat.com>2012-02-23 10:31:16 +0000
commitdb4bc712df5fbc17528b3f0fe694d84fb4bfeb66 (patch)
treed29579ccf36938a65948ea7e06ab00e5449f89b0 /l10ntools
parent25caea6f0d6806b44c611bef448b97e260306258 (diff)
Separate HelpIndexer into header, implementation, and main
Diffstat (limited to 'l10ntools')
-rw-r--r--l10ntools/source/help/HelpIndexer.cxx (renamed from l10ntools/source/help/helpindexer.cxx)132
-rw-r--r--l10ntools/source/help/HelpIndexer.hxx71
-rw-r--r--l10ntools/source/help/HelpIndexer_main.cxx66
-rw-r--r--l10ntools/source/help/makefile.mk8
4 files changed, 146 insertions, 131 deletions
diff --git a/l10ntools/source/help/helpindexer.cxx b/l10ntools/source/help/HelpIndexer.cxx
index c3271194bb30..ed0ce39a523a 100644
--- a/l10ntools/source/help/helpindexer.cxx
+++ b/l10ntools/source/help/HelpIndexer.cxx
@@ -1,5 +1,7 @@
-#include <CLucene/StdHeader.h>
-#include <CLucene.h>
+#include "HelpIndexer.hxx"
+
+#define TODO
+
#ifdef TODO
#include <CLucene/analysis/LanguageBasedAnalyzer.h>
#endif
@@ -10,74 +12,10 @@
#include <errno.h>
#include <string.h>
-#include <string>
-#include <iostream>
#include <algorithm>
-#include <set>
-
-// I assume that TCHAR is defined as wchar_t throughout
using namespace lucene::document;
-class HelpIndexer {
- private:
- std::string d_lang;
- std::string d_module;
- std::string d_captionDir;
- std::string d_contentDir;
- std::string d_indexDir;
- std::string d_error;
- std::set<std::string> d_files;
-
- public:
-
- /**
- * @param lang Help files language.
- * @param module The module of the helpfiles.
- * @param captionDir The directory to scan for caption files.
- * @param contentDir The directory to scan for content files.
- * @param indexDir The directory to write the index to.
- */
- HelpIndexer(std::string const &lang, std::string const &module,
- std::string const &captionDir, std::string const &contentDir,
- std::string const &indexDir);
-
- /**
- * Run the indexer.
- * @return true if index successfully generated.
- */
- bool indexDocuments();
-
- /**
- * Get the error string (empty if no error occurred).
- */
- std::string const & getErrorMessage();
-
- private:
-
- /**
- * Scan the caption & contents directories for help files.
- */
- bool scanForFiles();
-
- /**
- * Scan for files in the given directory.
- */
- bool scanForFiles(std::string const &path);
-
- /**
- * Fill the Document with information on the given help file.
- */
- bool helpDocument(std::string const & fileName, Document *doc);
-
- /**
- * Create a reader for the given file, and create an "empty" reader in case the file doesn't exist.
- */
- lucene::util::Reader *helpFileReader(std::string const & path);
-
- std::wstring string2wstring(std::string const &source);
-};
-
HelpIndexer::HelpIndexer(std::string const &lang, std::string const &module,
std::string const &captionDir, std::string const &contentDir, std::string const &indexDir) :
d_lang(lang), d_module(module), d_captionDir(captionDir), d_contentDir(contentDir), d_indexDir(indexDir), d_error(""), d_files() {}
@@ -183,65 +121,3 @@ std::wstring HelpIndexer::string2wstring(std::string const &source) {
std::copy(source.begin(), source.end(), target.begin());
return target;
}
-
-int main(int argc, char **argv) {
- const std::string pLang("-lang");
- const std::string pModule("-mod");
- const std::string pOutDir("-zipdir");
- const std::string pSrcDir("-srcdir");
-
- std::string lang;
- std::string module;
- std::string srcDir;
- std::string outDir;
-
- bool error = false;
- for (int i = 1; i < argc; ++i) {
- if (pLang.compare(argv[i]) == 0) {
- if (i + 1 < argc) {
- lang = argv[++i];
- } else {
- error = true;
- }
- } else if (pModule.compare(argv[i]) == 0) {
- if (i + 1 < argc) {
- module = argv[++i];
- } else {
- error = true;
- }
- } else if (pOutDir.compare(argv[i]) == 0) {
- if (i + 1 < argc) {
- outDir = argv[++i];
- } else {
- error = true;
- }
- } else if (pSrcDir.compare(argv[i]) == 0) {
- if (i + 1 < argc) {
- srcDir = argv[++i];
- } else {
- error = true;
- }
- } else {
- error = true;
- }
- }
-
- if (error) {
- std::cerr << "Error parsing command-line arguments" << std::endl;
- }
-
- if (error || lang.empty() || module.empty() || srcDir.empty() || outDir.empty()) {
- std::cerr << "Usage: HelpIndexer -lang ISOLangCode -mod HelpModule -srcdir SourceDir -zipdir OutputDir" << std::endl;
- return 1;
- }
-
- std::string captionDir(srcDir + "/caption");
- std::string contentDir(srcDir + "/content");
- std::string indexDir(outDir + "/" + module + ".idxl");
- HelpIndexer indexer(lang, module, captionDir, contentDir, indexDir);
- if (!indexer.indexDocuments()) {
- std::cerr << indexer.getErrorMessage() << std::endl;
- return 2;
- }
- return 0;
-}
diff --git a/l10ntools/source/help/HelpIndexer.hxx b/l10ntools/source/help/HelpIndexer.hxx
new file mode 100644
index 000000000000..56122e770e95
--- /dev/null
+++ b/l10ntools/source/help/HelpIndexer.hxx
@@ -0,0 +1,71 @@
+#ifndef HELPINDEXER_HXX
+#define HELPINDEXER_HXX
+
+#include <CLucene/StdHeader.h>
+#include <CLucene.h>
+
+#include <string>
+#include <set>
+
+// I assume that TCHAR is defined as wchar_t throughout
+
+class HelpIndexer {
+ private:
+ std::string d_lang;
+ std::string d_module;
+ std::string d_captionDir;
+ std::string d_contentDir;
+ std::string d_indexDir;
+ std::string d_error;
+ std::set<std::string> d_files;
+
+ public:
+
+ /**
+ * @param lang Help files language.
+ * @param module The module of the helpfiles.
+ * @param captionDir The directory to scan for caption files.
+ * @param contentDir The directory to scan for content files.
+ * @param indexDir The directory to write the index to.
+ */
+ HelpIndexer(std::string const &lang, std::string const &module,
+ std::string const &captionDir, std::string const &contentDir,
+ std::string const &indexDir);
+
+ /**
+ * Run the indexer.
+ * @return true if index successfully generated.
+ */
+ bool indexDocuments();
+
+ /**
+ * Get the error string (empty if no error occurred).
+ */
+ std::string const & getErrorMessage();
+
+ private:
+
+ /**
+ * Scan the caption & contents directories for help files.
+ */
+ bool scanForFiles();
+
+ /**
+ * Scan for files in the given directory.
+ */
+ bool scanForFiles(std::string const &path);
+
+ /**
+ * Fill the Document with information on the given help file.
+ */
+ bool helpDocument(std::string const & fileName, lucene::document::Document *doc);
+
+ /**
+ * Create a reader for the given file, and create an "empty" reader in case the file doesn't exist.
+ */
+ lucene::util::Reader *helpFileReader(std::string const & path);
+
+ std::wstring string2wstring(std::string const &source);
+};
+
+#endif
diff --git a/l10ntools/source/help/HelpIndexer_main.cxx b/l10ntools/source/help/HelpIndexer_main.cxx
new file mode 100644
index 000000000000..a1dd50bac789
--- /dev/null
+++ b/l10ntools/source/help/HelpIndexer_main.cxx
@@ -0,0 +1,66 @@
+#include "HelpIndexer.hxx"
+
+#include <string>
+#include <iostream>
+
+int main(int argc, char **argv) {
+ const std::string pLang("-lang");
+ const std::string pModule("-mod");
+ const std::string pOutDir("-zipdir");
+ const std::string pSrcDir("-srcdir");
+
+ std::string lang;
+ std::string module;
+ std::string srcDir;
+ std::string outDir;
+
+ bool error = false;
+ for (int i = 1; i < argc; ++i) {
+ if (pLang.compare(argv[i]) == 0) {
+ if (i + 1 < argc) {
+ lang = argv[++i];
+ } else {
+ error = true;
+ }
+ } else if (pModule.compare(argv[i]) == 0) {
+ if (i + 1 < argc) {
+ module = argv[++i];
+ } else {
+ error = true;
+ }
+ } else if (pOutDir.compare(argv[i]) == 0) {
+ if (i + 1 < argc) {
+ outDir = argv[++i];
+ } else {
+ error = true;
+ }
+ } else if (pSrcDir.compare(argv[i]) == 0) {
+ if (i + 1 < argc) {
+ srcDir = argv[++i];
+ } else {
+ error = true;
+ }
+ } else {
+ error = true;
+ }
+ }
+
+ if (error) {
+ std::cerr << "Error parsing command-line arguments" << std::endl;
+ }
+
+ if (error || lang.empty() || module.empty() || srcDir.empty() || outDir.empty()) {
+ std::cerr << "Usage: HelpIndexer -lang ISOLangCode -mod HelpModule -srcdir SourceDir -zipdir OutputDir" << std::endl;
+ return 1;
+ }
+
+ std::string captionDir(srcDir + "/caption");
+ std::string contentDir(srcDir + "/content");
+ std::string indexDir(outDir + "/" + module + ".idxl");
+ HelpIndexer indexer(lang, module, captionDir, contentDir, indexDir);
+ if (!indexer.indexDocuments()) {
+ std::cerr << indexer.getErrorMessage() << std::endl;
+ return 2;
+ }
+ return 0;
+}
diff --git a/l10ntools/source/help/makefile.mk b/l10ntools/source/help/makefile.mk
index e22c6a3dbb4a..12835358fcd6 100644
--- a/l10ntools/source/help/makefile.mk
+++ b/l10ntools/source/help/makefile.mk
@@ -60,7 +60,8 @@ SLOFILES=\
EXCEPTIONSFILES=\
$(OBJ)$/HelpLinker.obj \
$(OBJ)$/HelpCompiler.obj \
- $(OBJ)$/helpindexer.obj \
+ $(OBJ)$/HelpIndexer.obj \
+ $(OBJ)$/HelpIndexer_main.obj \
$(SLO)$/HelpLinker.obj \
$(SLO)$/HelpCompiler.obj
@@ -74,7 +75,7 @@ NOOPTFILES=\
$(SLO)$/HelpLinker.obj
.ENDIF
-PKGCONFIG_MODULES=libclucene-core
+PKGCONFIG_MODULES=libclucene-core libclucene-contribs-lib
.INCLUDE : pkg_config.mk
APP1TARGET= $(TARGET)
@@ -86,7 +87,8 @@ APP1STDLIBS+=$(SALLIB) $(BERKELEYLIB) $(XSLTLIB) $(EXPATASCII3RDLIB)
APP2TARGET=HelpIndexer
APP2OBJS=\
- $(OBJ)$/helpindexer.obj
+ $(OBJ)$/HelpIndexer.obj \
+ $(OBJ)$/HelpIndexer_main.obj
APP2RPATH = NONE
APP2STDLIBS+=$(SALLIB) $(PKGCONFIG_LIBS)