[icinga-checkins] icinga.org: icinga2/master: Implemented --version and made --help output prettier.

git at icinga.org git at icinga.org
Sun Feb 3 01:21:18 CET 2013


Module: icinga2
Branch: master
Commit: 5774792a23480e255b7265e2558f14b54830f2db
URL:    https://git.icinga.org/?p=icinga2.git;a=commit;h=5774792a23480e255b7265e2558f14b54830f2db

Author: Gunnar Beutner <gunnar.beutner at netways.de>
Date:   Sun Feb  3 01:21:11 2013 +0100

Implemented --version and made --help output prettier.

---

 icinga-app/icinga.cpp            |   35 +++++++++++++++++++++++++++--------
 lib/base/dynamicobject.cpp       |    2 +-
 lib/icinga/icingaapplication.cpp |    2 +-
 3 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/icinga-app/icinga.cpp b/icinga-app/icinga.cpp
index 670a633..9f6a2db 100644
--- a/icinga-app/icinga.cpp
+++ b/icinga-app/icinga.cpp
@@ -70,15 +70,10 @@ int main(int argc, char **argv)
 	Application::SetPkgDataDir(ICINGA_PKGDATADIR);
 #endif /* ICINGA_PKGDATADIR */
 
-	Logger::Write(LogInformation, "icinga-app", "Icinga application loader"
-#ifndef _WIN32
-		" (version: " ICINGA_VERSION ")"
-#endif /* _WIN32 */
-	);
-
 	po::options_description desc("Supported options");
 	desc.add_options()
 		("help,h", "show this help message")
+		("version,V", "show version information")
 		("library,l", po::value<vector<String> >(), "load a library")
 		("include,I", po::value<vector<String> >(), "add include search directory")
 		("config,c", po::value<vector<String> >(), "parse a configuration file")
@@ -91,7 +86,7 @@ int main(int argc, char **argv)
 
 	try {
 		po::store(po::parse_command_line(argc, argv, desc), vm);
-	} catch (const po::unknown_option& ex) {
+	} catch (const exception& ex) {
 		stringstream msgbuf;
 		msgbuf << "Error while parsing command-line options: " << ex.what();
 		Logger::Write(LogCritical, "icinga-app", msgbuf.str());
@@ -103,11 +98,35 @@ int main(int argc, char **argv)
 	if (vm.count("debug"))
 		Application::SetDebugging(true);
 
+	if (vm.count("help") || vm.count("version")) {
+		std::cout << "Icinga application loader"
+#ifndef _WIN32
+			  << " (version: " << ICINGA_VERSION << ")"
+#endif /* _WIN32 */
+			  << std::endl
+			  << "Copyright (c) 2012-2013 Icinga Development Team (http://www.icinga.org)" << std::endl
+			  << "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl2.html>" << std::endl
+			  << "This is free software: you are free to change and redistribute it." << std::endl
+			  << "There is NO WARRANTY, to the extent permitted by law." << std::endl;
+
+		if (vm.count("version"))
+			return EXIT_SUCCESS;
+	}
+
 	if (vm.count("help")) {
-		std::cout << desc << "\n";
+		std::cout << std::endl
+			  << desc << std::endl
+			  << "Report bugs at <https://dev.icinga.org/>" << std::endl
+			  << "Icinga home page: <http://www.icinga.org/>" << std::endl;
 		return EXIT_SUCCESS;
 	}
 
+	Logger::Write(LogInformation, "icinga-app", "Icinga application loader"
+#ifndef _WIN32
+	    " (version: " ICINGA_VERSION ")"
+#endif /* _WIN32 */
+	    );
+
 	Component::AddSearchDir(Application::GetPkgLibDir());
 
 	Utility::LoadIcingaLibrary("icinga", false);
diff --git a/lib/base/dynamicobject.cpp b/lib/base/dynamicobject.cpp
index 9576de4..f4f9e76 100644
--- a/lib/base/dynamicobject.cpp
+++ b/lib/base/dynamicobject.cpp
@@ -423,7 +423,7 @@ void DynamicObject::RestoreObjects(const String& filename)
 
 	stringstream msgbuf;
 	msgbuf << "Restored " << restored << " objects";
-	Logger::Write(LogInformation, "base", msgbuf.str());
+	Logger::Write(LogDebug, "base", msgbuf.str());
 }
 
 void DynamicObject::DeactivateObjects(void)
diff --git a/lib/icinga/icingaapplication.cpp b/lib/icinga/icingaapplication.cpp
index 4b3e5ed..91a5869 100644
--- a/lib/icinga/icingaapplication.cpp
+++ b/lib/icinga/icingaapplication.cpp
@@ -52,7 +52,7 @@ IcingaApplication::IcingaApplication(const Dictionary::Ptr& serializedUpdate)
  */
 int IcingaApplication::Main(void)
 {
-	Logger::Write(LogInformation, "icinga", "In IcingaApplication::Main()");
+	Logger::Write(LogDebug, "icinga", "In IcingaApplication::Main()");
 
 	m_StartTime = Utility::GetTime();
 





More information about the icinga-checkins mailing list