17 Kasım 2020 Salı

CLI Options Sınıfı

Giriş
Şu satırı dahil ederiz.
import org.apache.commons.cli.Options;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.HelpFormatter;
Kullanım
- Options sınıfının add(), addOption(), addOptionGroup() metodları kullanılarak Option eklenir
- Daha sonra şu çağrı başarılıysa elimize parse edilmiş bir CommandLine nesnesi geçer. 
CommandLine cmd = CommandLineParser.parse(Options,args);
- Bu nesnenin getOptionValue() metodlarını kullanarak komut satırı parametrelerini alabiliriz.

Benim Kullandıklarım
Örnek
- Sıfır argument ile çağırabilirim. Ancak bu durumda bunu kontrol etmek lazım
- Tek argument ile çağırabilirim
- İki argument ile çağırabilirim
- Üç argument ile çağırırsam, sonuncusunu dikkate almaz
Option piuTypeOption = Option.builder("piuType")
  .required()
  //.hasArgs() //unlimited number of args
  .numberOfArgs(2)
  .optionalArg(true)
  .desc("...")
  .build();

Örnek
Şöyle yaparız
Options options = new Options();
Option token = new Option("t", "token", true, "token");
token.setRequired(true);
options.addOption(token);

Option projectname = new Option("p", "projectname", true, "project");
projectname.setRequired(true);
options.addOption(projectname);
     
Option branch = new Option("b", "branchname", true, "branch");
branch.setRequired(true);
options.addOption(branch);
     
Option pullreq = new Option("PR", "pullreq", true, "pullreq");
pullreq.setRequired(true);
options.addOption(pullreq);
CommandLineParser parser = new DefaultParser(); HelpFormatter formatter = new HelpFormatter(); CommandLine cmd = null; try { cmd = parser.parse(options, args); } catch (ParseException e) { System.out.println(e.getMessage()); formatter.printHelp("utility-name", options); System.exit(1); } String token1 = cmd.getOptionValue("token"); String projectname1 = cmd.getOptionValue("projectname"); String branch1 = cmd.getOptionValue("branchname"); String pullreq1 = cmd.getOptionValue("pullreq");
add metodu
Option ekler

Örnek - Argument Kullanmayan Mecburi Olmayan Option
Şöyle yaparız. OptionsBuilder deprecate edildi.
Options options = new Options();
options.add(OptionsBuilder.withLongOpt("help").create("h"));
options.add(OptionsBuilder.withLongOpt("version").create());
Örnek - Argument Kullanan Mecburi Olmayan Option
Şöyle yaparız. Yani -a şeklinde geçilebilir.
Option remove = new Option("a", true, "a description");
remove.setRequired(false);
remove.setOptionalArg(false);

Options options = new Options(); options.addOption(remove); try{ CommandLineParser parser = new DefaultParser(); CommandLine cmd = parser.parse(options, args); } catch (ParseException ex) { ... }

addOption metodu
Açıklaması şöyle
The addOption method has three parameters.
- The first parameter is a java.lang.String that represents the option.
- The second parameter is a boolean that specifies whether the option requires an argument or not. In the case of a boolean option (sometimes referred to as a flag) an argument value is not present so false is passed.
- The third parameter is the description of the option.
Örnek - Argument Kullanmayan Mecburi Olan Option
Şöyle yaparız
Options options = new Options();
Option token = new Option("t", "token", true, "token");
token.setRequired(true);
options.addOption(token);
Örnek - Argument Kullanan Mecburi Olmayan Option
Şöyle yaparız
Options options = new Options();
options.addOption("b", true, "some message");
addOptionGroup metodu
Örnek - Argument Kullanan Mecburi Option
Şöyle yaparız. Hem input hem de output parametreleri gerekir
OptionGroup group = new OptionGroup();
group.add(OptionsBuilder.withLongOpt("input").hasArg().create("i"));
group.add(OptionsBuilder.withLongOpt("output").hasArg().create("o"));
group.setRequired(true);

Options options = new Options();
options.addOptionGroup(group);



Hiç yorum yok:

Yorum Gönder