Guest User

Untitled

a guest
Feb 25th, 2020
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.05 KB | None | 0 0
  1. using CMDParser.Attributes;
  2. using CMDParser.Parser;
  3. using System;
  4. using System.Collections.Generic;
  5.  
  6. namespace CMDParser.Demo
  7. {
  8.     public class Program
  9.     {
  10.         public class TimeCommandLine
  11.         {
  12.             [ShortOption('f', OptionAppearance.Optional, ArgumentOptions.Mandatory)]
  13.             [LongOption("format", OptionAppearance.Optional, ArgumentOptions.Mandatory)]
  14.             public string OutputFormat { get; set; }
  15.  
  16.             [ShortOption('p', OptionAppearance.Optional, ArgumentOptions.None)]
  17.             [LongOption("portability", OptionAppearance.Optional, ArgumentOptions.None)]
  18.             public bool IsPortable { get; set; }
  19.  
  20.             [ShortOption('o', OptionAppearance.Optional, ArgumentOptions.Mandatory)]
  21.             [LongOption("output", OptionAppearance.Optional, ArgumentOptions.Mandatory)]
  22.             public string OutputFile { get; set; }
  23.  
  24.             [ShortOption('a', OptionAppearance.Optional, ArgumentOptions.None)]
  25.             [LongOption("append", OptionAppearance.Optional, ArgumentOptions.None)]
  26.             public bool ShouldAppend { get; set; }
  27.  
  28.             [ShortOption('v', OptionAppearance.Optional, ArgumentOptions.None)]
  29.             [LongOption("verbose", OptionAppearance.Optional, ArgumentOptions.None)]
  30.             public bool IsOutputVerbose { get; set; }
  31.  
  32.             [LongOption("help", OptionAppearance.Optional, ArgumentOptions.None)]
  33.             public bool ShouldPrintHelp { get; set; }
  34.  
  35.             [ShortOption('V', OptionAppearance.Optional, ArgumentOptions.None)]
  36.             [LongOption("version", OptionAppearance.Optional, ArgumentOptions.None)]
  37.             public bool ShouldPrintVersion { get; set; }
  38.  
  39.             [PlainArgument]
  40.             public string Command { get; set; }
  41.  
  42.             [PlainArgument(0, ulong.MaxValue)]
  43.             public IEnumerable<string> Arguments { get; set; }
  44.         }
  45.  
  46.         static void Main(string[] args)
  47.         {
  48.             var parser = CommandLineParserFactory.CreateParser<TimeCommandLine>();
  49.  
  50.             parser.RegisterParseMethod(x => x); // These basic parsers will be preregistred by default.
  51.             parser.RegisterParseMethod(x => int.Parse(x)); // These basic parsers will be preregistred by default.
  52.  
  53.             var output = parser.Parse(args);
  54.  
  55.             // Output is instance of TimeCommandLine class.
  56.         }
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment