diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2013-12-09 11:22:17 +0100 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2013-12-09 11:22:41 +0100 |
commit | 712ea5d346780062ca46826dc94dbcfc2eb5c65e (patch) | |
tree | a2100b1cc9e24a15940b23a08967330a68603600 | |
parent | 08f6a0698e1b2dae11ad0e6d8d551f36078ac6b8 (diff) | |
download | alpine_aports-712ea5d346780062ca46826dc94dbcfc2eb5c65e.tar.bz2 alpine_aports-712ea5d346780062ca46826dc94dbcfc2eb5c65e.tar.xz alpine_aports-712ea5d346780062ca46826dc94dbcfc2eb5c65e.zip |
main/mqtt-exec: backport -v support
-rw-r--r-- | main/mqtt-exec/0001-implement-v-verbose-to-optionally-pass-the-the-topic.patch | 77 | ||||
-rw-r--r-- | main/mqtt-exec/APKBUILD | 15 |
2 files changed, 87 insertions, 5 deletions
diff --git a/main/mqtt-exec/0001-implement-v-verbose-to-optionally-pass-the-the-topic.patch b/main/mqtt-exec/0001-implement-v-verbose-to-optionally-pass-the-the-topic.patch new file mode 100644 index 0000000000..e2ea3dbe1e --- /dev/null +++ b/main/mqtt-exec/0001-implement-v-verbose-to-optionally-pass-the-the-topic.patch | |||
@@ -0,0 +1,77 @@ | |||
1 | From 9b550ad2043dee35b42d053899fed62b6ac53c92 Mon Sep 17 00:00:00 2001 | ||
2 | From: Natanael Copa <ncopa@alpinelinux.org> | ||
3 | Date: Wed, 4 Dec 2013 15:27:47 +0100 | ||
4 | Subject: [PATCH] implement -v/--verbose to optionally pass the the topic | ||
5 | |||
6 | --- | ||
7 | mqtt-exec.c | 21 +++++++++++++-------- | ||
8 | 1 file changed, 13 insertions(+), 8 deletions(-) | ||
9 | |||
10 | diff --git a/mqtt-exec.c b/mqtt-exec.c | ||
11 | index be52ba4..e6ab0ee 100644 | ||
12 | --- a/mqtt-exec.c | ||
13 | +++ b/mqtt-exec.c | ||
14 | @@ -25,9 +25,12 @@ void message_cb(struct mosquitto *mosq, void *obj, | ||
15 | const struct mosquitto_message *msg) | ||
16 | { | ||
17 | struct userdata *ud = (struct userdata *)obj; | ||
18 | - if (msg->payloadlen) { | ||
19 | + if (msg->payloadlen || ud->verbose) { | ||
20 | if (ud->command_argv && fork() == 0) { | ||
21 | - ud->command_argv[ud->command_argc-1] = msg->payload; | ||
22 | + if (ud->verbose) | ||
23 | + ud->command_argv[ud->command_argc-2] = msg->topic; | ||
24 | + ud->command_argv[ud->command_argc-1] = | ||
25 | + msg->payloadlen ? msg->payload : NULL; | ||
26 | execv(ud->command_argv[0], ud->command_argv); | ||
27 | perror(ud->command_argv[0]); | ||
28 | _exit(1); | ||
29 | @@ -74,6 +77,7 @@ int main(int argc, char *argv[]) | ||
30 | {"keepalive", required_argument, 0, 'k' }, | ||
31 | {"port", required_argument, 0, 'p' }, | ||
32 | {"topic", required_argument, 0, 't' }, | ||
33 | + {"verbose", no_argument, 0, 'v' }, | ||
34 | { 0, 0, 0, 0} | ||
35 | }; | ||
36 | int debug = 0; | ||
37 | @@ -91,7 +95,7 @@ int main(int argc, char *argv[]) | ||
38 | memset(hostname, 0, sizeof(hostname)); | ||
39 | memset(id, 0, sizeof(id)); | ||
40 | |||
41 | - while ((c = getopt_long(argc, argv, "dh:k:p:t:", opts, &i)) != -1) { | ||
42 | + while ((c = getopt_long(argc, argv, "dh:k:p:t:v", opts, &i)) != -1) { | ||
43 | switch(c) { | ||
44 | case 'd': | ||
45 | debug = 1; | ||
46 | @@ -108,6 +112,9 @@ int main(int argc, char *argv[]) | ||
47 | case 't': | ||
48 | ud.topic = optarg; | ||
49 | break; | ||
50 | + case 'v': | ||
51 | + ud.verbose = 1; | ||
52 | + break; | ||
53 | case '?': | ||
54 | return usage(1); | ||
55 | } | ||
56 | @@ -116,15 +123,13 @@ int main(int argc, char *argv[]) | ||
57 | if ((ud.topic == NULL) || (optind == argc)) | ||
58 | return usage(1); | ||
59 | |||
60 | - ud.command_argc = (argc - optind) + 1; | ||
61 | + ud.command_argc = (argc - optind) + 1 + ud.verbose; | ||
62 | ud.command_argv = malloc((ud.command_argc + 1) * sizeof(char *)); | ||
63 | if (ud.command_argv == NULL) | ||
64 | return perror_ret("malloc"); | ||
65 | |||
66 | - for (i=0; i < ud.command_argc; i++) | ||
67 | - ud.command_argv[i] = argv[optind+i]; | ||
68 | - ud.command_argv[ud.command_argc-1] = NULL; | ||
69 | - ud.command_argv[ud.command_argc] = NULL; | ||
70 | + for (i=0; i <= ud.command_argc; i++) | ||
71 | + ud.command_argv[i] = optind+i < argc ? argv[optind+i] : NULL; | ||
72 | |||
73 | /* generate an id */ | ||
74 | gethostname(hostname, sizeof(hostname)-1); | ||
75 | -- | ||
76 | 1.8.5.1 | ||
77 | |||
diff --git a/main/mqtt-exec/APKBUILD b/main/mqtt-exec/APKBUILD index 091778779d..7ec28c19e4 100644 --- a/main/mqtt-exec/APKBUILD +++ b/main/mqtt-exec/APKBUILD | |||
@@ -1,7 +1,7 @@ | |||
1 | # Maintainer: Natanael Copa <ncopa@alpinelinux.org> | 1 | # Maintainer: Natanael Copa <ncopa@alpinelinux.org> |
2 | pkgname=mqtt-exec | 2 | pkgname=mqtt-exec |
3 | pkgver=0.1 | 3 | pkgver=0.1 |
4 | pkgrel=0 | 4 | pkgrel=1 |
5 | pkgdesc="simple MQTT client that executes a command on messages" | 5 | pkgdesc="simple MQTT client that executes a command on messages" |
6 | url="https://github.com/ncopa/mqtt-exec" | 6 | url="https://github.com/ncopa/mqtt-exec" |
7 | arch="all" | 7 | arch="all" |
@@ -11,7 +11,9 @@ depends_dev="" | |||
11 | makedepends="$depends_dev mosquitto-dev" | 11 | makedepends="$depends_dev mosquitto-dev" |
12 | install="" | 12 | install="" |
13 | subpackages="" | 13 | subpackages="" |
14 | source="mqtt-exec-$pkgver.tar.gz::https://github.com/ncopa/mqtt-exec/archive/v$pkgver.tar.gz" | 14 | source="mqtt-exec-$pkgver.tar.gz::https://github.com/ncopa/mqtt-exec/archive/v$pkgver.tar.gz |
15 | 0001-implement-v-verbose-to-optionally-pass-the-the-topic.patch | ||
16 | " | ||
15 | 17 | ||
16 | _builddir="$srcdir"/mqtt-exec-$pkgver | 18 | _builddir="$srcdir"/mqtt-exec-$pkgver |
17 | prepare() { | 19 | prepare() { |
@@ -34,6 +36,9 @@ package() { | |||
34 | install -D mqtt-exec "$pkgdir"/usr/bin/mqtt-exec | 36 | install -D mqtt-exec "$pkgdir"/usr/bin/mqtt-exec |
35 | } | 37 | } |
36 | 38 | ||
37 | md5sums="1e78b343ecd7cc64d2771dcd04dfc2d7 mqtt-exec-0.1.tar.gz" | 39 | md5sums="1e78b343ecd7cc64d2771dcd04dfc2d7 mqtt-exec-0.1.tar.gz |
38 | sha256sums="4a62dc42131ba9c2ba418818e7394981c81c8f0a53cc31619a7d45247f6d376e mqtt-exec-0.1.tar.gz" | 40 | e9d27542d0143c70f5e5b4551f866947 0001-implement-v-verbose-to-optionally-pass-the-the-topic.patch" |
39 | sha512sums="583d02e7d1a0b7cb7bb9a249a7581109d0d48b6c9a0acc77022cfe2e8db56f8295a41c9374b0671343a215280b1d8cf36346501cabae157d6235170b7ee7d6ea mqtt-exec-0.1.tar.gz" | 41 | sha256sums="4a62dc42131ba9c2ba418818e7394981c81c8f0a53cc31619a7d45247f6d376e mqtt-exec-0.1.tar.gz |
42 | 115425b2b941b7c7065bf256b8be3e3505f3a2a3e9bbfdf29a598b82b86bd705 0001-implement-v-verbose-to-optionally-pass-the-the-topic.patch" | ||
43 | sha512sums="583d02e7d1a0b7cb7bb9a249a7581109d0d48b6c9a0acc77022cfe2e8db56f8295a41c9374b0671343a215280b1d8cf36346501cabae157d6235170b7ee7d6ea mqtt-exec-0.1.tar.gz | ||
44 | 6202ea282362232b3d857d50d8d7aa2310f0f6bbc828997f02084f65f1aa65f229629a86ad9092e51768e5f8acbd7945b46bad373b22a54f216e97ea57e394fa 0001-implement-v-verbose-to-optionally-pass-the-the-topic.patch" | ||