static void opts(int argc, char **argv, Wal *w) { int i; int64 ms; for (i = 1; i < argc; ++i) { if (argv[i][0] != '-') usage("unknown option", argv[i]); if (argv[i][1] == 0 || argv[i][2] != 0) usage("unknown option",argv[i]); switch (argv[i][1]) { case 'p': port = require_arg("-p", argv[++i]); warn_systemd_ignored_option("-p", argv[i]); break; case 'l': host_addr = require_arg("-l", argv[++i]); warn_systemd_ignored_option("-l", argv[i]); break; case 'z': job_data_size_limit = parse_size_t(require_arg("-z", argv[++i])); break; case 's': w->filesz = parse_size_t(require_arg("-s", argv[++i])); break; case 'c': w->nocomp = 0; break; case 'n': w->nocomp = 1; break; case 'f': ms = (int64)parse_size_t(require_arg("-f", argv[++i])); w->syncrate = ms * 1000000; w->wantsync = 1; break; case 'F': w->wantsync = 0; break; case 'u': user = require_arg("-u", argv[++i]); break; case 'b': w->dir = require_arg("-b", argv[++i]); w->use = 1; break; case 'h': usage(NULL, NULL); case 'v': printf("beanstalkd %s\n", version); exit(0); case 'V': verbose++; break; default: usage("unknown option", argv[i]); } } }
static void opts(int argc, char **argv) { int i; for (i = 1; i < argc; ++i) { if (argv[i][0] != '-') usage("unknown option", argv[i]); if (argv[i][1] == 0 || argv[i][2] != 0) usage("unknown option",argv[i]); switch (argv[i][1]) { case 'd': detach = 1; break; case 'p': port = require_arg("-p", argv[++i]); warn_systemd_ignored_option("-p", argv[i]); break; case 'l': host_addr = require_arg("-l", argv[++i]); warn_systemd_ignored_option("-l", argv[i]); break; case 'z': job_data_size_limit = parse_size_t(require_arg("-z", argv[++i])); break; case 's': binlog_size_limit = parse_size_t(require_arg("-s", argv[++i])); break; case 'f': fsync_throttle_ms = parse_size_t(require_arg("-f", argv[++i])); enable_fsync = 1; break; case 'F': enable_fsync = 0; break; case 'u': user = require_arg("-u", argv[++i]); break; case 'b': binlog_dir = require_arg("-b", argv[++i]); break; case 'h': usage(NULL, NULL); case 'v': printf("beanstalkd %s\n", VERSION); exit(0); default: usage("unknown option", argv[i]); } } }
void optparse(Server *s, char **argv) { int64 ms; char *arg, c, *tmp; # define EARGF(x) (*arg ? (tmp=arg,arg="",tmp) : *argv ? *argv++ : (x)) while ((arg = *argv++) && *arg++ == '-' && *arg) { while ((c = *arg++)) { switch (c) { case 'p': s->port = EARGF(flagusage("-p")); warn_systemd_ignored_option("-p", s->port); break; case 'l': s->addr = EARGF(flagusage("-l")); warn_systemd_ignored_option("-l", s->addr); break; case 'z': job_data_size_limit = parse_size_t(EARGF(flagusage("-z"))); break; case 's': s->wal.filesize = parse_size_t(EARGF(flagusage("-s"))); break; case 'c': s->wal.nocomp = 0; break; case 'n': s->wal.nocomp = 1; break; case 'f': ms = (int64)parse_size_t(EARGF(flagusage("-f"))); s->wal.syncrate = ms * 1000000; s->wal.wantsync = 1; break; case 'F': s->wal.wantsync = 0; break; case 'u': s->user = EARGF(flagusage("-u")); break; case 'b': s->wal.dir = EARGF(flagusage("-b")); s->wal.use = 1; break; case 'h': usage(0); case 'v': printf("beanstalkd %s\n", version); exit(0); case 'V': verbose++; break; default: warnx("unknown flag: %s", arg-2); usage(5); } } } if (arg) { warnx("unknown argument: %s", arg-1); usage(5); } }