From 1c87831cba055c78a5288f513679a781c1c62dd8 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sun, 24 Jan 2010 20:28:35 +0000 Subject: added --version parameter --- src/Makefile | 1 + src/anytun-config.cpp | 6 ++---- src/anytun-controld.cpp | 6 ++---- src/anytun.cpp | 6 ++---- src/configure | 29 +++++++++++++++++++++++++++++ src/options.cpp | 24 +++++++++++++++++++++++- src/options.h | 1 + 7 files changed, 60 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/Makefile b/src/Makefile index cf5822c..0e91563 100644 --- a/src/Makefile +++ b/src/Makefile @@ -179,6 +179,7 @@ distclean: cleanall find . -name *.o -exec rm -f {} \; rm -f config.sub config.guess rm -f signalHandler.hpp + rm -f version.h rm -f tunDevice.cpp rm -f include.mk diff --git a/src/anytun-config.cpp b/src/anytun-config.cpp index 0e60710..d09f1e8 100644 --- a/src/anytun-config.cpp +++ b/src/anytun-config.cpp @@ -104,11 +104,9 @@ int main(int argc, char* argv[]) { try { - bool result = gOpt.parse(argc, argv); - if(!result) { - gOpt.printUsage(); + if(!gOpt.parse(argc, argv)) exit(0); - } + StringList targets = gOpt.getLogTargets(); for(StringList::const_iterator it = targets.begin();it != targets.end(); ++it) cLog.addTarget(*it); diff --git a/src/anytun-controld.cpp b/src/anytun-controld.cpp index dd9be12..724296d 100644 --- a/src/anytun-controld.cpp +++ b/src/anytun-controld.cpp @@ -82,11 +82,9 @@ int main(int argc, char* argv[]) { try { - bool result = gOpt.parse(argc, argv); - if(!result) { - gOpt.printUsage(); + if(!gOpt.parse(argc, argv)) exit(0); - } + StringList targets = gOpt.getLogTargets(); for(StringList::const_iterator it = targets.begin();it != targets.end(); ++it) cLog.addTarget(*it); diff --git a/src/anytun.cpp b/src/anytun.cpp index e9f2452..e70087d 100644 --- a/src/anytun.cpp +++ b/src/anytun.cpp @@ -366,11 +366,9 @@ int main(int argc, char* argv[]) { try { - bool result = gOpt.parse(argc, argv); - if(!result) { - gOpt.printUsage(); + if(!gOpt.parse(argc, argv)) exit(0); - } + StringList targets = gOpt.getLogTargets(); for(StringList::const_iterator it = targets.begin();it != targets.end(); ++it) cLog.addTarget(*it); diff --git a/src/configure b/src/configure index 1f5f024..2c6d8ea 100755 --- a/src/configure +++ b/src/configure @@ -245,4 +245,33 @@ else echo "not installing example files" fi +VERSION=`cat ../version` +if which svn >/dev/null; then + SVN_REV=`svn info | grep "^Revision: " | awk '{print($2)}'` + if [ -n "$SVN_REV" ]; then + VERSION="$VERSION (svn$SVN_REV)" + fi +fi +HOSTNAME=`hostname` +DATE=`date +"%d.%m.%Y %H:%M:%S %Z"` + +cat >> version.h < #include "datatypes.h" +#include "version.h" + #include "options.h" #include "log.h" #include "authAlgoFactory.h" @@ -371,8 +373,14 @@ bool Options::parse(int argc, char* argv[]) std::string str(argv[i]); argc--; - if(str == "-h" || str == "--help") + if(str == "-h" || str == "--help") { + printUsage(); + return false; + } + else if(str == "-v" || str == "--version") { + printVersion(); return false; + } #if defined(ANYTUN_OPTIONS) || defined(ANYCTR_OPTIONS) @@ -520,6 +528,19 @@ void Options::parse_post() dev_type_ = "tun"; } +void Options::printVersion() +{ +#if defined(ANYCTR_OPTIONS) + std::cout << "anytun-controld"; +#elif defined(ANYCONF_OPTIONS) + std::cout << "anytun-config"; +#else + std::cout << "anytun"; +#endif + std::cout << VERSION_STRING_0 << std::endl; + std::cout << VERSION_STRING_1 << std::endl; +} + void Options::printUsage() { std::cout << "USAGE:" << std::endl; @@ -533,6 +554,7 @@ void Options::printUsage() #endif std::cout << " [-h|--help] prints this..." << std::endl; + std::cout << " [-v|--version] print version info and exit" << std::endl; #if defined(ANYTUN_OPTIONS) || defined(ANYCTR_OPTIONS) diff --git a/src/options.h b/src/options.h index 8ed9c4c..7a58c58 100644 --- a/src/options.h +++ b/src/options.h @@ -88,6 +88,7 @@ public: bool parse(int argc, char* argv[]); void parse_post(); + void printVersion(); void printUsage(); void printOptions(); -- cgit v1.2.3