DISTCLEANFILES = $(HTMLDOCS) $(DOCS) kea-messages.xml
kea-messages.xml:
- $(PYTHON) $(top_srcdir)/tools/system_messages.py -o $@ $(top_srcdir)
+ $(PYTHON) $(top_srcdir)/tools/system_messages.py -o $@ \
+ `find $(top_srcdir) -name "*.mes" -print`
# This is not a "man" manual, but reuse this for now for docbook.
if GENERATE_DOCS
@XSLTPROC@ --novalid --xinclude --nonet \
--path $(top_builddir)/doc \
-o $@ \
+ --stringparam generate.toc "book toc" \
--stringparam html.stylesheet kea-guide.css \
http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl \
kea-messages.xml
// Produce System Messages Manual
//
-// This tool reads all the .mes files in the directory tree whose root is given
-// on the command line and interprets them as message files. It pulls
-// all the messages and description out, sorts them by message ID, and writes
-// them out as a single (formatted) file.
+// This tool reads all the message files given on the command line.
+// It pulls all the messages and description out, sorts them by
+// message ID, and writes them out as a single (formatted) file.
//
// Invocation:
// The code is invoked using the command line:
//
-// kt_system_messages.py [-o <output-file>] [<top-source-directory>|<files>]
+// system_messages [-o <output-file>] <files>
//
// If no output file is specified, output is written to stdout.
#include <stdlib.h>
#include <string.h>
+#ifdef USE_BOOST_FILESYSTEM
#include <boost/filesystem.hpp>
+#endif
#include <boost/lexical_cast.hpp>
typedef std::vector<std::string> lines_type;
///
/// Parameters:
/// root Directory that is the root of the source tree
+#ifdef USE_BOOST_FILESYSTEM
void processAllFiles(const boost::filesystem::path& root)
{
boost::filesystem::directory_iterator endd;
}
}
}
-
+#endif
void usage(char* progname)
{
+#ifdef USE_BOOST_FILESYSTEM
+ std::cerr << "Usage: " << progname <<
+ " [--help | options] root|files\n";
+#else
std::cerr << "Usage: " << progname <<
- " [--help | options] [root|files]\n";
+ " [--help | options] files\n";
+#endif
std::cerr << " options: --output file: " <<
"output file name (default to stdout)\n";
}
usage(progname);
exit(-1);
}
+#ifdef USE_BOOST_FILESYSTEM
if (argc > 1) {
for (int i = 0; i < argc; ++i) {
processFile(argv[i]);
processFile(argv[0]);
}
}
+#else
+ for (int i = 0; i < argc; ++i) {
+ processFile(argv[i]);
+ }
+#endif
// Now just print out everything we've read (in alphabetical order).
bool first = true;
# Invocation:
# The code is invoked using the command line:
#
-# python system_messages.py [-o <output-file>] <top-source-directory>
+# python system_messages.py [-o <output-file>] <top-source-directory>|<files>
#
# If no output file is specified, output is written to stdout.
# Main program
if __name__ == "__main__":
- parser = OptionParser(usage="Usage: %prog [--help | options] root")
+ parser = OptionParser(usage="Usage: %prog [--help | options] root|files")
parser.add_option("-o", "--output", dest="output", default=None,
metavar="FILE",
help="output file name (default to stdout)")
(options, args) = parser.parse_args()
if len(args) == 0:
- parser.error("Must supply directory at which to begin search")
- elif len(args) > 1:
- parser.error("Only a single root directory can be given")
+ parser.error("Must supply directory at which to begin search or files")
# Redirect output if specified (errors are written to stderr)
if options.output is not None:
sys.stdout = open(options.output, 'w')
# Read the files and load the data
- processAllFiles(args[0])
+ if (len(args) > 1) or (not os.path.isdir(args[0])):
+ for file in args:
+ processFile(file)
+ else:
+ processAllFiles(args[0])
# Now just print out everything we've read (in alphabetical order).
sname = ""