1 #include "tool_parse.h"
2 #include "tool_config.h"
9 static struct option options[] = {
10 {"register", no_argument, 0, 'r'},
11 {"discovery", no_argument, 0, 'd'},
12 {"name", required_argument, 0, 'n'},
13 {"type", required_argument, 0, 't'},
14 {"iface", required_argument, 0, 'i'},
15 {"ble", no_argument, 0, 'b'},
16 {"addr", required_argument, 0, 'a'},
17 {"ipv4", no_argument, 0, '4'},
18 {"ipv6", no_argument, 0, '6'},
19 {"port", required_argument, 0, 'p'},
20 {"dp", required_argument, 0, 'D'},
21 {"max-conn", required_argument, 0, 'C'},
22 {"topic", required_argument, 0, 'T'},
23 {"message", required_argument, 0, 'm'},
24 {"file", required_argument, 0, 'f'},
25 {"interval", required_argument, 0, 'I'},
26 {"cacert", required_argument, 0, 0},
27 {"cert", required_argument, 0, 1},
28 {"key", required_argument, 0, 2},
29 {"psk", required_argument, 0, 3},
30 {"verbose", no_argument, 0, 'v'},
31 {"help", no_argument, 0, 'h'},
35 int tool_parse_params(int argc, char **argv)
43 c = getopt_long(argc, argv, "rdn:t:i:ba:46p:D:T:C:m:f:I:vw:h", options, &idx);
49 tool_config_set_register(true);
52 tool_config_set_discovery(true);
55 tool_config_set_service_name(optarg);
58 tool_config_set_service_type(optarg);
61 tool_config_set_iface_name(optarg);
64 tool_config_set_with_ble(true);
67 tool_config_set_remote_address(optarg);
70 tool_config_set_address_family(4);
73 tool_config_set_address_family(6);
77 tool_config_set_port(val);
80 tool_config_set_dp_type(optarg);
84 tool_config_set_max_conn(val);
87 tool_config_set_topic(optarg);
90 tool_config_set_message(optarg);
93 tool_config_set_file(optarg);
97 tool_config_set_interval(val);
100 tool_config_set_cacert(optarg);
103 tool_config_set_cert(optarg);
106 tool_config_set_private_key(optarg);
109 tool_config_set_psk(optarg);
112 tool_config_set_verbose(true);
115 tool_config_set_log_file(optarg);
121 printf("Invalid argument.\n");
128 return error ? -1 : 0;