示例#1
0
文件: main.c 项目: soup/beanstalkd
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]);
        }
    }
}
示例#2
0
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]);
        }
    }
}
示例#3
0
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);
    }
}