diff options
author | Alan Conway <aconway@apache.org> | 2007-10-04 15:32:45 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2007-10-04 15:32:45 +0000 |
commit | f6afed79c8618f02431bdd9d3ca25e75deef184e (patch) | |
tree | 4eb872f1ee7bad57cf1a8cdfd127ffbfd86fcf0b /qpid/cpp/src | |
parent | 8ca58fe792954288bd89b8a6a0ed41e5396ae74b (diff) | |
download | qpid-python-f6afed79c8618f02431bdd9d3ca25e75deef184e.tar.gz |
* docs/man/qpidd.x: Explain configuration options.
* etc/qpidd.conf: Placeholder configuration file.
* qpidc.spec.in: Install qpidd.conf
* Makefile.am: Install qpidd.conf
* src/qpid/Options.cpp, h, src/qpidd.cpp: Option formatting fixes.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@581951 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
-rw-r--r-- | qpid/cpp/src/qpid/Options.cpp | 16 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/Options.h | 3 | ||||
-rw-r--r-- | qpid/cpp/src/qpidd.cpp | 3 |
3 files changed, 15 insertions, 7 deletions
diff --git a/qpid/cpp/src/qpid/Options.cpp b/qpid/cpp/src/qpid/Options.cpp index 081583f17e..291df341e7 100644 --- a/qpid/cpp/src/qpid/Options.cpp +++ b/qpid/cpp/src/qpid/Options.cpp @@ -59,13 +59,14 @@ struct EnvOptMapper { } std::string prettyArg(const std::string& name, const std::string& value) { - return value.empty() ? name : name+" (="+value+")"; + return value.empty() ? name+" " : name+" (="+value+") "; } Options::Options(const string& name) : po::options_description(name) {} void Options::parse(int argc, char** argv, const std::string& configFile) { + string defaultConfigFile = configFile; // May be changed by env/cmdline string parsing; try { po::variables_map vm; @@ -78,9 +79,14 @@ void Options::parse(int argc, char** argv, const std::string& configFile) if (!configFile.empty()) { parsing="configuration file "+configFile; ifstream conf(configFile.c_str()); - if (conf.good()) { - conf.exceptions(ifstream::failbit|ifstream::badbit); + if (conf.good()) po::store(po::parse_config_file(conf, *this), vm); + else { + // No error if default configfile is missing/unreadable + // but complain for non-default config file. + if (configFile != defaultConfigFile) + throw Exception("cannot read configuration file " + +configFile); } } po::notify(vm); @@ -94,7 +100,9 @@ void Options::parse(int argc, char** argv, const std::string& configFile) } } -CommonOptions::CommonOptions(const string& name) : Options(name) { +CommonOptions::CommonOptions(const string& name, const string& configfile) + : Options(name), config(configfile) +{ addOptions() ("help,h", optValue(help), "Print help message.") ("version,v", optValue(version), "Print version information.") diff --git a/qpid/cpp/src/qpid/Options.h b/qpid/cpp/src/qpid/Options.h index 0821dca7e5..f46e32032b 100644 --- a/qpid/cpp/src/qpid/Options.h +++ b/qpid/cpp/src/qpid/Options.h @@ -137,7 +137,8 @@ struct Options : public po::options_description { * Standard options for configuration */ struct CommonOptions : public Options { - CommonOptions(const std::string& name=std::string()); + CommonOptions(const std::string& name=std::string(), + const std::string& configfile=std::string()); bool help; bool version; std::string config; diff --git a/qpid/cpp/src/qpidd.cpp b/qpid/cpp/src/qpidd.cpp index 53a68fc815..97dd83689d 100644 --- a/qpid/cpp/src/qpidd.cpp +++ b/qpid/cpp/src/qpidd.cpp @@ -61,8 +61,7 @@ struct QpiddOptions : public qpid::Options { DaemonOptions daemon; qpid::log::Options log; - QpiddOptions() : qpid::Options("Options") { - common.config = "/etc/qpidd.conf"; + QpiddOptions() : qpid::Options("Options"), common("", "/etc/qpidd.conf") { add(common); add(broker); add(daemon); |