Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

add version function, wire it up from the makefile

  • Loading branch information...
commit 30cd5880addf928908817f5e433ea993c83db912 1 parent 230a127
Dave Reisner authored
Showing with 23 additions and 5 deletions.
  1. +8 −2 Makefile
  2. +1 −1  bash-completion
  3. +12 −2 ponymix.cc
  4. +2 −0  zsh-completion
10 Makefile
View
@@ -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
2  bash-completion
View
@@ -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
14 ponymix.cc
View
@@ -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;
2  zsh-completion
View
@@ -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]' \
Please sign in to comment.
Something went wrong with that request. Please try again.