Do not build unittest when ASAN is enabled
[platform/core/api/vine.git] / tool / tool_parse.cpp
1 #include "tool_parse.h"
2 #include "tool_config.h"
3 #include "tool_help.h"
4
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include <getopt.h>
8
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'},
32         {0, 0, 0, 0}
33 };
34
35 int tool_parse_params(int argc, char **argv)
36 {
37         int c;
38         int error = 0;
39         int val = 0;
40
41         while (!error) {
42                 int idx = 0;
43                 c = getopt_long(argc, argv, "rdn:t:i:ba:46p:D:T:C:m:f:I:vw:h", options, &idx);
44                 if (c == -1)
45                         break;
46
47                 switch (c) {
48                 case 'r':
49                         tool_config_set_register(true);
50                         break;
51                 case 'd':
52                         tool_config_set_discovery(true);
53                         break;
54                 case 'n':
55                         tool_config_set_service_name(optarg);
56                         break;
57                 case 't':
58                         tool_config_set_service_type(optarg);
59                         break;
60                 case 'i':
61                         tool_config_set_iface_name(optarg);
62                         break;
63                 case 'b':
64                         tool_config_set_with_ble(true);
65                         break;
66                 case 'a':
67                         tool_config_set_remote_address(optarg);
68                         break;
69                 case '4':
70                         tool_config_set_address_family(4);
71                         break;
72                 case '6':
73                         tool_config_set_address_family(6);
74                         break;
75                 case 'p':
76                         val = atoi(optarg);
77                         tool_config_set_port(val);
78                         break;
79                 case 'D':
80                         tool_config_set_dp_type(optarg);
81                         break;
82                 case 'C':
83                         val = atoi(optarg);
84                         tool_config_set_max_conn(val);
85                         break;
86                 case 'T':
87                         tool_config_set_topic(optarg);
88                         break;
89                 case 'm':
90                         tool_config_set_message(optarg);
91                         break;
92                 case 'f':
93                         tool_config_set_file(optarg);
94                         break;
95                 case 'I':
96                         val = atoi(optarg);
97                         tool_config_set_interval(val);
98                         break;
99                 case 0:
100                         tool_config_set_cacert(optarg);
101                         break;
102                 case 1:
103                         tool_config_set_cert(optarg);
104                         break;
105                 case 2:
106                         tool_config_set_private_key(optarg);
107                         break;
108                 case 3:
109                         tool_config_set_psk(optarg);
110                         break;
111                 case 'v':
112                         tool_config_set_verbose(true);
113                         break;
114                 case 'w':
115                         tool_config_set_log_file(optarg);
116                         break;
117                 case 'h':
118                         tool_help_msgs();
119                         break;
120                 default:
121                         printf("Invalid argument.\n");
122                         tool_help_msgs();
123                         error = 1;
124                         break;
125                 }
126         }
127
128         return error ? -1 : 0;
129 }