diff options
| author | Garrett D'Amore <garrett@damore.org> | 2018-03-02 19:02:48 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2018-03-02 19:03:08 -0800 |
| commit | f305f28c8dbac109c1038d430c7125222ee90703 (patch) | |
| tree | dcba1b998c1eb3d8f2bd10283ab2721251f6a535 | |
| parent | a315244fc92aaed52cd4c620521c797c7a0b5f4c (diff) | |
| download | nng-f305f28c8dbac109c1038d430c7125222ee90703.tar.gz nng-f305f28c8dbac109c1038d430c7125222ee90703.tar.bz2 nng-f305f28c8dbac109c1038d430c7125222ee90703.zip | |
fixes #254 nngcat should have a --version option
We only add a basic --version (also -V). I'm still trying to figure
out how to convince cmake to emit its compilation flags into a file
where we can use them for output.
| -rw-r--r-- | docs/man/nngcat.adoc | 4 | ||||
| -rw-r--r-- | src/nng.c | 11 | ||||
| -rw-r--r-- | src/nng.h | 8 | ||||
| -rw-r--r-- | tools/nngcat/nngcat.c | 5 |
4 files changed, 25 insertions, 3 deletions
diff --git a/docs/man/nngcat.adoc b/docs/man/nngcat.adoc index 49e4b05a..e5528536 100644 --- a/docs/man/nngcat.adoc +++ b/docs/man/nngcat.adoc @@ -17,6 +17,8 @@ nngcat - command line access to Scalabity Protocols *nngcat* --help +*nngcat* --version + *nngcat* [_OPTION_]... == DESCRIPTION @@ -41,6 +43,8 @@ equa === Generic *-h, --help*:: Get usage help. +*-V, --version*:: + Print the version and exit. *-v, --verbose*:: Select verbose operation. *-q, --silent*:: @@ -8,6 +8,7 @@ // found online at https://opensource.org/licenses/MIT. // +#include "nng.h" #include "core/nng_impl.h" // This file provides the "public" API. This is a thin wrapper around @@ -1212,3 +1213,13 @@ nng_url_clone(nng_url **dstp, const nng_url *src) { return (nni_url_clone(dstp, src)); } + +#define xstr(a) str(a) +#define str(a) #a + +const char * +nng_version(void) +{ + return (xstr(NNG_MAJOR_VERSION) "." xstr(NNG_MINOR_VERSION) "." xstr( + NNG_PATCH_VERSION)); +} @@ -47,9 +47,9 @@ extern "C" { // may not necessarily match the ABI versions. Right now at // version 0, you should not be making any forward compatibility // assumptions. -#define NNG_MAJOR_VERSION 0 -#define NNG_MINOR_VERSION 5 -#define NNG_PATCH_VERSION 0 +#define NNG_MAJOR_VERSION 0 +#define NNG_MINOR_VERSION 5 +#define NNG_PATCH_VERSION 0 // Types common to nng. typedef uint32_t nng_socket; @@ -698,6 +698,8 @@ NNG_DECL void nng_url_free(nng_url *); // nng_url_clone clones a URL structure. NNG_DECL int nng_url_clone(nng_url **, const nng_url *); +// nng_version returns the library version as a human readable string. +NNG_DECL const char *nng_version(void); #ifdef __cplusplus } #endif diff --git a/tools/nngcat/nngcat.c b/tools/nngcat/nngcat.c index 2f5ef563..064e4635 100644 --- a/tools/nngcat/nngcat.c +++ b/tools/nngcat/nngcat.c @@ -96,6 +96,7 @@ enum options { OPT_CACERT, OPT_KEYFILE, OPT_CERTFILE, + OPT_VERSION, }; static nng_optspec opts[] = { @@ -179,6 +180,7 @@ static nng_optspec opts[] = { .o_val = OPT_CERTFILE, .o_arg = true, }, + { .o_name = "version", .o_short = 'V', .o_val = OPT_VERSION }, // Sentinel. { .o_name = NULL, .o_val = 0 }, @@ -784,6 +786,9 @@ main(int ac, const char **av) case OPT_INSECURE: insecure = 1; break; + case OPT_VERSION: + printf("%s\n", nng_version()); + exit(0); } } switch (rv) { |
