aboutsummaryrefslogtreecommitdiff
path: root/apps/launcher.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'apps/launcher.cpp')
-rw-r--r--apps/launcher.cpp104
1 files changed, 0 insertions, 104 deletions
diff --git a/apps/launcher.cpp b/apps/launcher.cpp
deleted file mode 100644
index 0b97a59..0000000
--- a/apps/launcher.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-#include "apps.h"
-#include "apps-list.gen.h"
-#include <log4cplus/consoleappender.h>
-#include <log4cplus/configurator.h>
-
-namespace trygvis {
-namespace apps {
-
-using namespace std;
-
-const po::options_description logging_options() {
- po::options_description desc;
-
- return desc;
-}
-
-void setup_logging(string app_name) {
- Appender *console = new ConsoleAppender(true, true);
-
- string pattern = string("%-5p ") /*"%6r "*/ + app_name + "/%-20c %m%n"; // add %M (function name)
-
- PatternLayout *layout = new PatternLayout(LOG4CPLUS_TEXT(pattern));
- console->setLayout(auto_ptr<Layout>(layout));
-
- Hierarchy &h = Logger::getDefaultHierarchy();
- h.getRoot().addAppender(SharedAppenderPtr(console));
-}
-
-template <typename App>
-int launch_app(int argc, const char *argv[]) {
- App app;
-
- po::options_description all("Options");
-
- auto all_options = all.add_options();
- all_options("help", "This help message");
- app.add_options(all_options);
-
- all.add(logging_options());
- app.add_extra_options(all);
-
- po::variables_map vm;
-
- try {
- auto parsed = po::parse_command_line(argc, argv, all);
- po::store(parsed, vm);
-
- po::notify(vm);
-
- auto unrecognized = po::collect_unrecognized(parsed.options, po::include_positional);
-
- if (vm.count("help")) {
- cerr << all << "\n";
- return EXIT_FAILURE;
- }
-
- if (unrecognized.size()) {
- cerr << "Unrecognized option: " << unrecognized.at(0) << "\n";
- return EXIT_FAILURE;
- }
-
- setup_logging(app.app_name);
-
- Logger logger = Logger::getInstance(LOG4CPLUS_TEXT("main"));
-
- app_execution execution(all, vm, logger);
-
- return app.main(execution);
- } catch (po::required_option &e) {
- cerr << "Missing required option: " << e.get_option_name() << endl;
- cerr << all << endl;
- return EXIT_FAILURE;
- } catch (po::unknown_option &e) {
- cerr << e.what() << endl;
- return EXIT_FAILURE;
- }
-}
-}
-}
-
-using namespace std;
-using namespace trygvis::apps;
-
-int main(int argc, const char *argv[]) {
- if (argc == 0) {
- return EXIT_FAILURE;
- }
-
- string app_name;
- if (boost::ends_with(argv[0], "launcher")) {
- if (argc <= 1) {
- cerr << "Missing required argument: app" << endl;
- return EXIT_FAILURE;
- }
-
- app_name = argv[1];
- --argc;
- ++argv;
- } else {
- app_name = argv[0];
- }
-
- return launch(app_name, argc, argv);
-}