2004-02-24 Sebastien Pouliot <sebastien@ximian.com>
[mono.git] / mcs / class / Mono.GetOptions / Options.cs
1 using System;
2
3 namespace Mono.GetOptions
4 {
5         public class Options
6         {
7                 public OptionsParsingMode ParsingMode;
8                 public bool BreakSingleDashManyLettersIntoManyOptions;
9                 public bool EndOptionProcessingWithDoubleDash;
10
11                 private OptionList optionParser;
12
13                 public string[] RemainingArguments;
14
15                 public Options()
16                 {
17                         ParsingMode = OptionsParsingMode.Both;
18                         BreakSingleDashManyLettersIntoManyOptions = false;
19                         EndOptionProcessingWithDoubleDash = true;
20                 }
21
22                 public void ProcessArgs(string[] args)
23                 {
24                         optionParser = new OptionList(this);
25                         RemainingArguments =  optionParser.ProcessArgs(args);
26                 }
27
28                 [Option("Show this help list", '?',"help")]
29                 public virtual WhatToDoNext DoHelp()
30                 {
31                         return optionParser.DoHelp();
32                 }
33
34                 [Option("Display version and licensing information", 'V', "version")]
35                 public virtual WhatToDoNext DoAbout()
36                 {
37                         return optionParser.DoAbout();
38                 }
39
40                 [Option("Show usage syntax and exit", ' ',"usage")]
41                 public virtual WhatToDoNext DoUsage()
42                 {
43                         return optionParser.DoUsage();
44                 }
45
46                 [Option("Show verbose parsing of options", ' ',"verbosegetoptions")]
47                 public bool VerboseParsingOfOptions
48                 {
49                         set { OptionDetails.Verbose = value;}
50                 }
51
52
53         }
54         
55 }