-ci::RequestMode kRequestMode = ci::RequestMode::GLOBAL;
-const char *short_opts = "g:u";
-const struct option long_opts[] = {
- { "request_mode", 1, NULL, 'r' },
- { 0, 0, 0, 0 } /* sentinel */
-};
-const char *request_modes[] {
- "global",
- "user"
-};
-void ParseRequestMode(int argc, char** argv) {
- int c;
- int opt_idx = 0;
- do {
- c = getopt_long(argc, argv, short_opts, long_opts, &opt_idx);
- switch (c) {
- case 'r':
- if (strncmp(optarg, request_modes[0], strlen(request_modes[0])) == 0)
- kRequestMode = ci::RequestMode::GLOBAL;
- else if (strncmp(optarg, request_modes[1], strlen(request_modes[1])) == 0)
- kRequestMode = ci::RequestMode::USER;
- else
- LOG(ERROR) << "Wrong request mode " << optarg
- << ". Available: \"global\" or \"user\"";
- break;
- case 'g':
- kRequestMode = ci::RequestMode::GLOBAL;
- break;
- case 'u':
- kRequestMode = ci::RequestMode::USER;
- break;
- default:
- break;
- }
- } while (c != -1);
-}