+ printf("pb-event (" PACKAGE_NAME ") " PACKAGE_VERSION "\n");
+}
+
+static void print_usage(void)
+{
+ print_version();
+ printf(
+"Usage: pb-event [-h] [event...]\n"
+"\n"
+" Send a single petitboot user event to the petitboot discover server.\n"
+" Events can be read from stdin, or provided on the command line.\n"
+" User events must have the following format:\n"
+"\n"
+" (add|remove)@device-id [name=value] [image=value] [args=value]\n"
+"\n"
+" When read from stdin, components are separated by NUL chars\n"
+"\n"
+"Examples:\n"
+"\n"
+" args:\n"
+" pb-event add@/net/eth0 name=netboot image=tftp://192.168.1.10/vmlinux\n"
+" pb-event remove@/net/eth0\n"
+"\n"
+" stdin:\n"
+" printf 'add@/net/eth0\\0name=netboot\\0image=tftp://10.0.0.2/vmlinux\\0' \\\n"
+" | pb-event\n"
+" printf 'remove@/net/eth0\\0' | pb-event\n"
+"\n");
+}
+
+static const char *err_max_size = "pb-event: message too large "
+ "(%zu byte max)\n";
+
+static ssize_t parse_event_args(int n, char * const * args,
+ char *buf, size_t max_len)
+{
+ ssize_t arg_len, total_len;
+ const char *arg;