blob: be0fc0545e09efcb401f130475385aed2b202378 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.amaterasu.leader.yarn;
import org.apache.commons.cli.*;
public class ArgsParser {
private static Options getOptions() {
Options options = new Options();
options.addOption("r", "repo", true, "The git repo containing the job");
options.addOption("b", "branch", true, "The branch to be executed (default is master)");
options.addOption("e", "env", true, "The environment to be executed (test, prod, etc. values from the default env are taken if np env specified)");
options.addOption("n", "name", true, "The name of the job");
options.addOption("i", "job-id", true, "The jobId - should be passed only when resuming a job");
options.addOption("j", "new-job-id", true, "The jobId - should never be passed by a user");
options.addOption("r", "report", true, "The level of reporting");
options.addOption("h", "home", true, "The level of reporting");
return options;
}
public static JobOpts getJobOpts(String[] args) throws ParseException {
CommandLineParser parser = new BasicParser();
Options options = getOptions();
CommandLine cli = parser.parse(options, args);
JobOpts opts = new JobOpts();
if (cli.hasOption("repo")) {
opts.repo = cli.getOptionValue("repo");
}
if (cli.hasOption("branch")) {
opts.branch = cli.getOptionValue("branch");
}
if (cli.hasOption("env")) {
opts.env = cli.getOptionValue("env");
}
if (cli.hasOption("job-id")) {
opts.jobId = cli.getOptionValue("job-id");
}
if (cli.hasOption("new-job-id")) {
opts.newJobId = cli.getOptionValue("new-job-id");
}
if (cli.hasOption("report")) {
opts.report = cli.getOptionValue("report");
}
if (cli.hasOption("home")) {
opts.home = cli.getOptionValue("home");
}
if (cli.hasOption("name")) {
opts.name = cli.getOptionValue("name");
}
return opts;
}
}