diff options
author | randomdan <randomdan@localhost> | 2013-06-03 15:35:38 +0000 |
---|---|---|
committer | randomdan <randomdan@localhost> | 2013-06-03 15:35:38 +0000 |
commit | fb320a981b68bd44bd463a6f4d3aaeab5287e5c5 (patch) | |
tree | 0ef45689c63321fb8f035c88d64086c96afc5033 | |
parent | Remove the now pointless wrapper around UUIDs (diff) | |
download | project2-fb320a981b68bd44bd463a6f4d3aaeab5287e5c5.tar.bz2 project2-fb320a981b68bd44bd463a6f4d3aaeab5287e5c5.tar.xz project2-fb320a981b68bd44bd463a6f4d3aaeab5287e5c5.zip |
Add back some basic help output
-rw-r--r-- | project2/common/options.cpp | 6 | ||||
-rw-r--r-- | project2/common/options.h | 3 | ||||
-rw-r--r-- | project2/console/consoleEnvironment.cpp | 10 |
3 files changed, 18 insertions, 1 deletions
diff --git a/project2/common/options.cpp b/project2/common/options.cpp index b2777fa..37b3f06 100644 --- a/project2/common/options.cpp +++ b/project2/common/options.cpp @@ -115,6 +115,12 @@ Options::consume(const Glib::ustring & n, const Glib::ustring & p, const Variabl } } +const Options::OptionList & +Options::allOptions() const +{ + return options; +} + const Options::Option * Options::find(const Glib::ustring & n) const { BOOST_FOREACH(const OptionPtr & o, options) { diff --git a/project2/common/options.h b/project2/common/options.h index b336854..8a2584c 100644 --- a/project2/common/options.h +++ b/project2/common/options.h @@ -48,6 +48,7 @@ class Options { virtual void consume(const Glib::ustring & name, const Glib::ustring & platform, const VariableType & value) const = 0; }; typedef boost::intrusive_ptr<Option> OptionPtr; + typedef std::list<OptionPtr> OptionList; Options(const Glib::ustring & name); @@ -89,9 +90,9 @@ class Options { const Option * find(const Glib::ustring & name) const; const Glib::ustring name; + const OptionList & allOptions() const; private: - typedef std::list<OptionPtr> OptionList; OptionList options; }; diff --git a/project2/console/consoleEnvironment.cpp b/project2/console/consoleEnvironment.cpp index 28da574..6bbeeed 100644 --- a/project2/console/consoleEnvironment.cpp +++ b/project2/console/consoleEnvironment.cpp @@ -25,8 +25,18 @@ class ShowHelpTrigger : public Options::Target { } void consume(const Glib::ustring &, const VariableType &) const { fprintf(stdout, "Help\n"); + LoaderBase::onAllComponents(boost::bind(&ShowHelpTrigger::outputOptions, this, _1)); exit(1); } + private: + void outputOptions(ComponentLoader * cl) const { + const Options * options = cl->options(); + if (!options) return; + fprintf(stdout, " * %s\n", options->name.c_str()); + BOOST_FOREACH(const auto & option, options->allOptions()) { + fprintf(stdout, " * %s - %s\n", option->name().c_str(), option->description().c_str()); + } + } }; ConsoleEnvironment::ConsoleEnvironment(int c, char ** v) : |