summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2011-02-27 22:45:32 (GMT)
committerKevin Smith <git@kismith.co.uk>2011-03-06 20:25:01 (GMT)
commit27d21b371f24272466a2d6a5bf2e2b717ee2d9fc (patch)
tree5f53281711d4f467933e4b3315241e4eee58a64c /Swiftob/main.cpp
parentd9c9df3b4ae5432552417fc4db74d62ab34f066d (diff)
downloadswift-27d21b371f24272466a2d6a5bf2e2b717ee2d9fc.zip
swift-27d21b371f24272466a2d6a5bf2e2b717ee2d9fc.tar.bz2
A start on Swiftob, a Swiften-based chatbot.
Diffstat (limited to 'Swiftob/main.cpp')
-rw-r--r--Swiftob/main.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/Swiftob/main.cpp b/Swiftob/main.cpp
new file mode 100644
index 0000000..9908b45
--- /dev/null
+++ b/Swiftob/main.cpp
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2011 Kevin Smith
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+#include <boost/program_options/options_description.hpp>
+#include <boost/program_options/variables_map.hpp>
+#include <boost/program_options.hpp>
+#include <boost/version.hpp>
+#include <iostream>
+
+#include "Swiftob.h"
+
+int main(int argc, char* argv[]) {
+ boost::program_options::options_description desc = Swiftob::getOptionsDescription();
+ boost::program_options::variables_map vm;
+ try {
+ boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm);
+ } catch (boost::program_options::unknown_option option) {
+#if BOOST_VERSION >= 104200
+ std::cout << "Ignoring unknown option " << option.get_option_name() << " but continuing." << std::endl;
+#else
+ std::cout << "Error: " << option.what() << " (continuing)" << std::endl;
+#endif
+ }
+ boost::program_options::notify(vm);
+ if (vm.count("help") > 0) {
+ std::cout << desc << "\n";
+ return 1;
+ }
+
+ Swiftob bot(vm);
+ int result = bot.exec();
+
+ return result;
+}