From 5c2de222219de09ea0baf4f078915ee2f747bf4f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Sat, 18 Jun 2011 22:44:26 +0200
Subject: Tweak help documentation and add manpages.


diff --git a/Swift/Packaging/Debian/debian/libswiften.manpages b/Swift/Packaging/Debian/debian/libswiften.manpages
new file mode 100644
index 0000000..8795c12
--- /dev/null
+++ b/Swift/Packaging/Debian/debian/libswiften.manpages
@@ -0,0 +1 @@
+manpages/swiften-config.1
diff --git a/Swift/Packaging/Debian/debian/manpages/swift.1 b/Swift/Packaging/Debian/debian/manpages/swift.1
new file mode 100644
index 0000000..6626b40
--- /dev/null
+++ b/Swift/Packaging/Debian/debian/manpages/swift.1
@@ -0,0 +1,33 @@
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.38.4.
+.TH SWIFT "1" "June 2011" "Swift" "Swift Manual"
+.SH NAME
+Swift \- swift
+.SH SYNOPSIS
+.B swift
+[\fIOPTIONS\fR]...
+.SH DESCRIPTION
+Swift is an instant messaging client for the XMPP network.
+.SH OPTIONS
+.TP
+\fB\-\-debug\fR
+Turn on debug logging
+.TP
+\fB\-\-help\fR
+Show this help message
+.TP
+\fB\-\-version\fR
+Show version information
+.TP
+\fB\-\-netbook\-mode\fR
+Use netbook mode display (unsupported)
+.TP
+\fB\-\-no\-tabs\fR
+Don't manage chat windows in tabs (unsupported)
+.TP
+\fB\-\-latency\-debug\fR
+Use latency debugging (unsupported)
+.HP
+\fB\-\-multi\-account\fR arg (=1) Number of accounts to open windows for (unsupported)
+.TP
+\fB\-\-start\-minimized\fR
+Don't show the login/roster window at startup
diff --git a/Swift/Packaging/Debian/debian/manpages/swiften-config.1 b/Swift/Packaging/Debian/debian/manpages/swiften-config.1
new file mode 100644
index 0000000..3717df6
--- /dev/null
+++ b/Swift/Packaging/Debian/debian/manpages/swiften-config.1
@@ -0,0 +1,21 @@
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.38.4.
+.TH SWIFTEN-CONFIG "1" "June 2011" "swiften-config" "Swift Manual"
+.SH NAME
+swiften-config \- swiften-config
+.SH SYNOPSIS
+.B swiften-config
+[\fIOPTIONS\fR]...
+.SH DESCRIPTION
+swiften\-config outputs the Swiften build options.
+.TP
+\fB\-\-help\fR
+Show this help message
+.TP
+\fB\-\-version\fR
+Show version information
+.TP
+\fB\-\-libs\fR
+List the library flags
+.TP
+\fB\-\-cflags\fR
+List the compiler & preprocessor flags
diff --git a/Swift/Packaging/Debian/debian/rules b/Swift/Packaging/Debian/debian/rules
index 4105fec..ddafbdb 100755
--- a/Swift/Packaging/Debian/debian/rules
+++ b/Swift/Packaging/Debian/debian/rules
@@ -31,6 +31,7 @@ binary-arch: install
 	dh_installchangelogs 
 	dh_installdocs
 	dh_installmenu
+	dh_installman -a
 	dh_link
 	dh_strip --dbg-package=swift-im-dbg
 	dh_compress
diff --git a/Swift/Packaging/Debian/debian/swift-im.manpages b/Swift/Packaging/Debian/debian/swift-im.manpages
new file mode 100644
index 0000000..5e83a38
--- /dev/null
+++ b/Swift/Packaging/Debian/debian/swift-im.manpages
@@ -0,0 +1 @@
+manpages/swift.1
diff --git a/Swift/Packaging/Debian/package.sh b/Swift/Packaging/Debian/package.sh
index c395d25..b98f29d 100755
--- a/Swift/Packaging/Debian/package.sh
+++ b/Swift/Packaging/Debian/package.sh
@@ -40,6 +40,7 @@ ln -s Swift/Packaging/Debian/debian $DIRNAME/debian
 ../../../BuildTools/UpdateDebianChangelog.py $DIRNAME/debian/changelog $DEBIAN_VERSION
 cat $DIRNAME/debian/control.in | sed -e "s/%SWIFTEN_SOVERSION%/$SWIFTEN_SOVERSION/g" > $DIRNAME/debian/control
 mv $DIRNAME/debian/libswiften.install $DIRNAME/debian/libswiften$SWIFTEN_SOVERSION.install
+mv $DIRNAME/debian/libswiften.manpages $DIRNAME/debian/libswiften$SWIFTEN_SOVERSION.manpages
 mv $DIRNAME/debian/libswiften-dev.install $DIRNAME/debian/libswiften$SWIFTEN_SOVERSION-dev.install
 
 # Build
diff --git a/Swift/QtUI/QtSwift.cpp b/Swift/QtUI/QtSwift.cpp
index d4c306f..7830150 100644
--- a/Swift/QtUI/QtSwift.cpp
+++ b/Swift/QtUI/QtSwift.cpp
@@ -59,12 +59,13 @@ po::options_description QtSwift::getOptionsDescription() {
 	po::options_description result("Options");
 	result.add_options()
 		("debug", "Turn on debug logging")
-		("help", "produce help message")
-		("netbook-mode", "use netbook mode display (unsupported)")
-		("no-tabs", "don't manage chat windows in tabs (unsupported)")
-		("latency-debug", "use latency debugging (unsupported)")
-		("multi-account", po::value<int>()->default_value(1), "number of accounts to open windows for (unsupported)")
-		("start-minimized", "don't show the login/roster window at startup")
+		("help", "Show this help message")
+		("version", "Show version information")
+		("netbook-mode", "Use netbook mode display (unsupported)")
+		("no-tabs", "Don't manage chat windows in tabs (unsupported)")
+		("latency-debug", "Use latency debugging (unsupported)")
+		("multi-account", po::value<int>()->default_value(1), "Number of accounts to open windows for (unsupported)")
+		("start-minimized", "Don't show the login/roster window at startup")
 		;
 	return result;
 }
diff --git a/Swift/QtUI/main.cpp b/Swift/QtUI/main.cpp
index de9d122..0146769 100644
--- a/Swift/QtUI/main.cpp
+++ b/Swift/QtUI/main.cpp
@@ -16,6 +16,7 @@
 
 #include <Swift/Controllers/Translator.h>
 #include <Swift/Controllers/ApplicationInfo.h>
+#include <Swift/Controllers/BuildVersion.h>
 #include <SwifTools/Application/PlatformApplicationPathProvider.h>
 
 #include "QtSwift.h"
@@ -52,9 +53,17 @@ int main(int argc, char* argv[]) {
 	}
 	boost::program_options::notify(vm);
 	if (vm.count("help") > 0) {
-		std::cout << desc << "\n";
+		std::cout << SWIFT_APPLICATION_NAME << " is an instant messaging client for the XMPP network." << std::endl;
+		std::cout << std::endl;
+		std::cout << "Usage: " << argv[0] << " [OPTIONS]..." << std::endl;
+		std::cout << std::endl;
+		std::cout << desc << std::endl;
 		return 1;
 	}
+	if (vm.count("version") > 0) {
+		std::cout << SWIFT_APPLICATION_NAME << " " << buildVersion << std::endl;
+		return 0;
+	}
 
 	Swift::QtSwift swift(vm);
 	int result = app.exec();
diff --git a/Swiften/Config/swiften-config.cpp b/Swiften/Config/swiften-config.cpp
index b3875cb..b616711 100644
--- a/Swiften/Config/swiften-config.cpp
+++ b/Swiften/Config/swiften-config.cpp
@@ -15,6 +15,7 @@
 
 #include <Swiften/Base/Platform.h>
 #include <Swiften/Base/Paths.h>
+#include <Swiften/Version.h>
 
 #include "swiften-config.h"
 
@@ -34,6 +35,7 @@ int main(int argc, char* argv[]) {
 	boost::program_options::options_description desc;
 	desc.add_options()
 		("help", "Show this help message")
+		("version", "Show version information")
 		("libs", "List the library flags")
 		("cflags", "List the compiler & preprocessor flags")
 	;
@@ -55,9 +57,17 @@ int main(int argc, char* argv[]) {
 	}
 
 	if (vm.count("help") > 0) {
+		std::cout << "swiften-config outputs the Swiften build options." << std::endl;
+		std::cout << std::endl;
+		std::cout << "Usage: swiften-config [OPTIONS]..." << std::endl;
+		std::cout << std::endl;
 		std::cout << desc << "\n";
 		return 0;
 	}
+	if (vm.count("version") > 0) {
+		std::cout << "swiften-config " << SWIFTEN_VERSION_STRING << std::endl;
+		return 0;
+	}
 
 	// Read in all variables
 	std::vector<std::string> libs;
diff --git a/Swiften/SConscript b/Swiften/SConscript
index 30fd9b6..12c7456 100644
--- a/Swiften/SConscript
+++ b/Swiften/SConscript
@@ -362,6 +362,7 @@ if env["SCONS_STAGE"] == "build" :
 
 	version_header = "#pragma once\n\n"
 	version_header += "#define SWIFTEN_VERSION 0x%02X%02X%02X\n" % (swiften_env["SWIFTEN_VERSION_MAJOR"], swiften_env["SWIFTEN_VERSION_MINOR"], swiften_env["SWIFTEN_VERSION_PATCH"])
+	version_header += "#define SWIFTEN_VERSION_STRING \"%s\"\n" % swiften_env["SWIFTEN_VERSION"]
 	swiften_env.WriteVal("Version.h", swiften_env.Value(version_header))
 	swiften_includes.append("Swiften/Version.h")
 
-- 
cgit v0.10.2-6-g49f6