aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Reisner <dreisner@archlinux.org>2013-03-14 19:56:18 -0400
committerDave Reisner <dreisner@archlinux.org>2013-04-10 10:12:43 -0400
commit30cd5880addf928908817f5e433ea993c83db912 (patch)
tree5587789d55132e41ee71f841b7cc8df824e41ad2
parent230a127bc8fdf638a0ecccecf43cfed425f30468 (diff)
downloadmirror-ponymix-30cd5880addf928908817f5e433ea993c83db912.tar.gz
mirror-ponymix-30cd5880addf928908817f5e433ea993c83db912.tar.bz2
mirror-ponymix-30cd5880addf928908817f5e433ea993c83db912.zip
add version function, wire it up from the makefile
-rw-r--r--Makefile10
-rw-r--r--bash-completion2
-rw-r--r--ponymix.cc14
-rw-r--r--zsh-completion2
4 files changed, 23 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index d2f6b09..3a93916 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,13 @@
+V=1
+VDEVEL=$(shell test -d .git && git describe 2>/dev/null)
+
+ifneq "$(VDEVEL)" ""
+V=$(VDEVEL)
+endif
+
CXX := $(CXX) -std=c++11
-base_CXXFLAGS = -Wall -Wextra -pedantic -O2 -g
+base_CXXFLAGS = -Wall -Wextra -pedantic -O2 -g -DPONYMIX_VERSION=\"$(V)\"
base_LIBS = -lm
libpulse_CXXFLAGS = $(shell pkg-config --cflags libpulse)
@@ -35,6 +42,5 @@ install: ponymix
clean:
$(RM) ponymix pulse.o
-V=$(shell if test -d .git; then git describe; fi)
dist:
git archive --format=tar --prefix=ponymix-$(V)/ HEAD | gzip -9 > ponymix-$(V).tar.gz
diff --git a/bash-completion b/bash-completion
index fc71557..ead700b 100644
--- a/bash-completion
+++ b/bash-completion
@@ -10,7 +10,7 @@ in_array() {
_ponymix() {
local flags='-h --help -c --card -d --device -t --devtype
-N --notify --source --input --sink --output
- --sink-input --source-output'
+ --sink-input --source-output -V --version'
local types='sink sink-input source source-output'
local verbs=(help defaults set-default list list-short
list-cards list-cards-short get-volume set-volume
diff --git a/ponymix.cc b/ponymix.cc
index a378ed0..d20aeb5 100644
--- a/ponymix.cc
+++ b/ponymix.cc
@@ -473,10 +473,16 @@ static const std::pair<const string, const Command>& string_to_command(
return *match;
}
+static void version() {
+ fputs("ponymix v" PONYMIX_VERSION "\n", stdout);
+ exit(EXIT_SUCCESS);
+}
+
static void usage() {
printf("usage: %s [options] <command>...\n", program_invocation_short_name);
fputs("\nOptions:\n"
- " -h, --help display this help and exit\n\n"
+ " -h, --help display this help and exit\n"
+ " -V, --version display program version and exit\n\n"
" -c, --card CARD target card (index or name)\n"
" -d, --device DEVICE target device (index or name)\n"
@@ -559,6 +565,7 @@ bool parse_options(int argc, char** argv) {
{ "help", no_argument, 0, 'h' },
{ "notify", no_argument, 0, 'N' },
{ "type", required_argument, 0, 't' },
+ { "version", no_argument, 0, 'V' },
{ "sink", no_argument, 0, 0x100 },
{ "output", no_argument, 0, 0x101 },
{ "source", no_argument, 0, 0x102 },
@@ -569,7 +576,7 @@ bool parse_options(int argc, char** argv) {
};
for (;;) {
- int opt = getopt_long(argc, argv, "c:d:hNt:", opts, nullptr);
+ int opt = getopt_long(argc, argv, "c:d:hNt:V", opts, nullptr);
if (opt == -1)
break;
@@ -590,6 +597,9 @@ bool parse_options(int argc, char** argv) {
opt_devtype = string_to_devtype_or_die(optarg);
opt_listrestrict = true;
break;
+ case 'V':
+ version();
+ break;
case 0x100:
case 0x101:
opt_devtype = DEVTYPE_SINK;
diff --git a/zsh-completion b/zsh-completion
index 4a08a59..c16fbd6 100644
--- a/zsh-completion
+++ b/zsh-completion
@@ -107,6 +107,8 @@ else
'(-c --card -d --device)'{-d,--device}'[Select Device]:devices:_devices' \
- '(help)' \
{-h,--help}'[display this help and exit]' \
+ - '(version)' \
+ {-V,--version}'[display program version and exit]' \
- '(sink)' \
'--sink[alias to type sink]' \
'--output[alias to type sink]' \