using System; using CommandLine; using CommandLine.Text; namespace SQLFlowClient { public class Options { [Value(0, MetaName = "sqlfile", Required = false, HelpText = "Input sqlfile to be processed.")] public string SQLFile { get; set; } [Option('g', "graph", Required = false, Default = false, HelpText = "Get the graph from sql.")] public bool IsGraph { get; set; } [Option('v', "dbvendor", Required = false, Default = "oracle", HelpText = "Set the database of the sqlfile.")] public string DBVendor { get; set; } [Option('r', "showRelationType", Required = false, Default = "fdd", HelpText = "Set the relation type.")] public string ShowRelationType { get; set; } [Option('s', "simpleOutput", Required = false, Default = false, HelpText = "Set whether to get simple output.")] public bool SimpleOutput { get; set; } [Option("ignoreRecordSet", Required = false, Default = false, HelpText = "Set whether to ignore record set.")] public bool IgnoreRecordSet { get; set; } [Option("ignoreFunction", Required = false, Default = false, HelpText = "Set whether to ignore function.")] public bool ignoreFunction { get; set; } [Option('o', "output", Required = false, Default = "", HelpText = "Save output as a file.")] public string Output { get; set; } //[Option('t', "token", Required = false, Default = "", HelpText = "If userId and secretKey is given, token will be ignore, otherwise it will use token.")] //public string Token { get; set; } //[Option('u', "userId", Required = false, Default = "", HelpText = "")] //public string UserId { get; set; } //[Option('k', "secretKey", Required = false, Default = "", HelpText = "")] //public string SecretKey { get; set; } [Option("version", Required = false, Default = false, HelpText = "Show version.")] public bool Version { get; set; } } class Program { static void Main(string[] args) { var parser = new Parser(with => { with.AutoVersion = false; with.AutoHelp = true; }); var parserResult = parser.ParseArguments(args); ; parserResult .WithParsed(options => { HttpService.Request(options).Wait(); }) .WithNotParsed(errs => { var helpText = HelpText.AutoBuild(parserResult, h => { h.AutoHelp = true; h.AutoVersion = false; return h; }, e => e); Console.WriteLine(helpText); }); } } }