diff options
author | Peter Wu <lekensteyn@gmail.com> | 2013-09-28 16:38:04 +0200 |
---|---|---|
committer | Peter Wu <lekensteyn@gmail.com> | 2013-09-28 16:38:04 +0200 |
commit | f6523bc6bc58665a38b34a8b00bae048f0a0923d (patch) | |
tree | 273fabc8a0db6dfc2ad13697682eb4aa96626875 | |
parent | 89dce898377abfdde54d784b050841a282ca3151 (diff) | |
download | ltunify-f6523bc6bc58665a38b34a8b00bae048f0a0923d.tar.gz |
ltunify: Add --version (-V) option, use git version if possible
-rw-r--r-- | Makefile | 9 | ||||
-rw-r--r-- | ltunify.c | 23 |
2 files changed, 25 insertions, 7 deletions
@@ -9,6 +9,13 @@ udevrulesdir ?= /etc/udev/rules.d udevrule = 42-logitech-unify-permissions.rules +PACKAGE_VERSION ?= $(shell git describe --dirty 2>/dev/null | sed s/^v//) +ifeq (PACKAGE_VERSION, "") + LTUNIFY_DEFINES := +else + LTUNIFY_DEFINES := -DPACKAGE_VERSION=\"$(PACKAGE_VERSION)\" +endif + %: %.c $(CC) $(CFLAGS) -o $(OUTDIR)$@ $< @@ -17,7 +24,7 @@ all: ltunify read-dev-usbmon read-dev-usbmon: read-dev-usbmon.c hidraw.c ltunify: ltunify.c hidpp20.c - $(CC) $(CFLAGS) -o $(OUTDIR)$@ $< -lrt + $(CC) $(CFLAGS) -o $(OUTDIR)$@ $< -lrt $(LTUNIFY_DEFINES) .PHONY: all clean install-home install install-udevrule uninstall clean: @@ -1010,6 +1010,13 @@ void get_device_names(int fd) { } } } + +static void print_version(void) { + fprintf(stderr, +"Logitech Unifying tool version " PACKAGE_VERSION "\n" +"Copyright (C) 2013 Peter Wu <lekensteyn@gmail.com>\n"); +} + void print_all_devices(void) { unsigned i; puts("Connected devices:"); @@ -1025,9 +1032,10 @@ void print_all_devices(void) { } static void print_usage(const char *program_name) { - fprintf(stderr, "Usage: %s [options] cmd [cmd options]\n" -"Logitech Unifying tool version %s\n" -"Copyright (C) 2013 Peter Wu <lekensteyn@gmail.com>\n" + fprintf(stderr, "Usage: %s [options] cmd [cmd options]\n", + program_name); + print_version(); + fprintf(stderr, "\n" "Generic options:\n" " -d, --device path Bypass detection, specify custom hidraw device.\n" @@ -1043,8 +1051,7 @@ static void print_usage(const char *program_name) { " receiver-info - Show information about the receiver\n" "In the above lines, \"idx\" refers to the device number shown in the\n" " first column of the list command (between 1 and 6). Alternatively, you\n" -" can use the following names (case-insensitive):\n" - , program_name, PACKAGE_VERSION); +" can use the following names (case-insensitive):\n"); print_device_types(); } @@ -1067,12 +1074,13 @@ static int validate_args(int argc, char **argv, char ***argsp, char **hidraw_pat struct option longopts[] = { { "device", 1, NULL, 'd' }, { "help", 0, NULL, 'h' }, + { "version", 0, NULL, 'V' }, { 0, 0, 0, 0 }, }; *argsp = NULL; - while ((opt = getopt_long(argc, argv, "+Dd:h", longopts, NULL)) != -1) { + while ((opt = getopt_long(argc, argv, "+Dd:hV", longopts, NULL)) != -1) { switch (opt) { case 'D': debug_enabled = true; @@ -1080,6 +1088,9 @@ static int validate_args(int argc, char **argv, char ***argsp, char **hidraw_pat case 'd': *hidraw_path = optarg; break; + case 'V': + print_version(); + return 0; case 'h': print_usage(*argv); return 0; |