summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/mqtt-multipub64
1 files changed, 62 insertions, 2 deletions
diff --git a/bin/mqtt-multipub b/bin/mqtt-multipub
index 255220c..2881a2a 100755
--- a/bin/mqtt-multipub
+++ b/bin/mqtt-multipub
@@ -4,7 +4,7 @@ use strict;
use warnings;
use 5.020;
-our $VERSION = '0.00';
+our $VERSION = '0.01';
use File::Slurp qw(read_file);
use Getopt::Long;
@@ -70,20 +70,74 @@ __END__
=head1 NAME
+mqtt-multipub - Publish multiple MQTT messages at once
+
=head1 SYNOPSIS
+B<mqtt-multipub> B<-h|--host> I<hostname> [B<publish>] I<topic>=I<value ...> [B<retain>] I<topic>=I<value ...>
+
=head1 VERSION
+version 0.01
+
=head1 DESCRIPTION
+B<mqtt-multipub> publishes multiple MQTT messages (usually for different
+topics) using a single connection. This makes it faster than a series of
+B<mosquitto_pub> invocations.
+
+Its non-option arguments consist of the I<messages> to publish and the
+B<publish> and B<retain> keywords specifying how exactly the messages should
+be published.
+
+
+=head1 ARGUMENTS
+
+=over
+
+=item B<publish>
+
+All messages specified after B<publish> will be published without retain flag.
+I.e., they will be forwarded to clients subscribed to the topic, but they will
+not be retained for clients subscribing at a later time.
+
+This is the default behaviour.
+
+=item B<retain>
+
+All messages specified after B<retain> will be published and retained on the
+MQTT broker as "last known good" value. So, clients which subscribe at a later
+time will still get the value published this way -- unless it is updated or
+deleted in the meantime.
+
+=item I<topic>=I<value>
+
+Publish (and optionally retain, see above) I<value> as a message for I<topic>.
+
+If I<value> begins with a B</> (slash), it is interpreted as a filename
+and the file content published instead. If the file contains a trailing
+newline character, it will be left out of the message body.
+
+To avoid I<value> being parsed as a filename, prefix it with an additional
+slash character: Use B<//>I<...> instead of B</>I<...>. This additional
+character will not be part of the published message.
+
+=back
+
=head1 OPTIONS
=over
+=item B<-h>|B<--host> I<hostname>
+
+Connect to I<hostname>. Mandatory.
+
=back
=head1 EXIT STATUS
+Zero unless things went wrong.
+
=head1 CONFIGURATION
None.
@@ -92,14 +146,20 @@ None.
=over
+=item * File::Slurp
+
+=item * Net::MQTT::Simple
+
=back
=head1 BUGS AND LIMITATIONS
+Probably many.
+
=head1 AUTHOR
Copyright (C) 2017 by Daniel Friesel E<lt>derf@finalrewind.orgE<gt>
=head1 LICENSE
- 0. You just DO WHAT THE FUCK YOU WANT TO.
+This software is licensed under the same terms as Perl itself.