aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-12-09 11:22:17 +0100
committerNatanael Copa <ncopa@alpinelinux.org>2013-12-09 11:22:41 +0100
commit712ea5d346780062ca46826dc94dbcfc2eb5c65e (patch)
treea2100b1cc9e24a15940b23a08967330a68603600
parent08f6a0698e1b2dae11ad0e6d8d551f36078ac6b8 (diff)
downloadalpine_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.patch77
-rw-r--r--main/mqtt-exec/APKBUILD15
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 @@
1From 9b550ad2043dee35b42d053899fed62b6ac53c92 Mon Sep 17 00:00:00 2001
2From: Natanael Copa <ncopa@alpinelinux.org>
3Date: Wed, 4 Dec 2013 15:27:47 +0100
4Subject: [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
10diff --git a/mqtt-exec.c b/mqtt-exec.c
11index 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--
761.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>
2pkgname=mqtt-exec 2pkgname=mqtt-exec
3pkgver=0.1 3pkgver=0.1
4pkgrel=0 4pkgrel=1
5pkgdesc="simple MQTT client that executes a command on messages" 5pkgdesc="simple MQTT client that executes a command on messages"
6url="https://github.com/ncopa/mqtt-exec" 6url="https://github.com/ncopa/mqtt-exec"
7arch="all" 7arch="all"
@@ -11,7 +11,9 @@ depends_dev=""
11makedepends="$depends_dev mosquitto-dev" 11makedepends="$depends_dev mosquitto-dev"
12install="" 12install=""
13subpackages="" 13subpackages=""
14source="mqtt-exec-$pkgver.tar.gz::https://github.com/ncopa/mqtt-exec/archive/v$pkgver.tar.gz" 14source="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
17prepare() { 19prepare() {
@@ -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
37md5sums="1e78b343ecd7cc64d2771dcd04dfc2d7 mqtt-exec-0.1.tar.gz" 39md5sums="1e78b343ecd7cc64d2771dcd04dfc2d7 mqtt-exec-0.1.tar.gz
38sha256sums="4a62dc42131ba9c2ba418818e7394981c81c8f0a53cc31619a7d45247f6d376e mqtt-exec-0.1.tar.gz" 40e9d27542d0143c70f5e5b4551f866947 0001-implement-v-verbose-to-optionally-pass-the-the-topic.patch"
39sha512sums="583d02e7d1a0b7cb7bb9a249a7581109d0d48b6c9a0acc77022cfe2e8db56f8295a41c9374b0671343a215280b1d8cf36346501cabae157d6235170b7ee7d6ea mqtt-exec-0.1.tar.gz" 41sha256sums="4a62dc42131ba9c2ba418818e7394981c81c8f0a53cc31619a7d45247f6d376e mqtt-exec-0.1.tar.gz
42115425b2b941b7c7065bf256b8be3e3505f3a2a3e9bbfdf29a598b82b86bd705 0001-implement-v-verbose-to-optionally-pass-the-the-topic.patch"
43sha512sums="583d02e7d1a0b7cb7bb9a249a7581109d0d48b6c9a0acc77022cfe2e8db56f8295a41c9374b0671343a215280b1d8cf36346501cabae157d6235170b7ee7d6ea mqtt-exec-0.1.tar.gz
446202ea282362232b3d857d50d8d7aa2310f0f6bbc828997f02084f65f1aa65f229629a86ad9092e51768e5f8acbd7945b46bad373b22a54f216e97ea57e394fa 0001-implement-v-verbose-to-optionally-pass-the-the-topic.patch"