/// <summary> /// <para> /// Handle possible "meta data" options of the application. /// 1. -help /// 2. -version /// 3. -pause /// </para> /// </summary> /// <param name="app"></param> /// <param name="args"></param> /// <returns></returns> public static BoolMessageItem <Args> HandleOptions(IApp app, Args args) { BoolMessageItem <Args> result = new BoolMessageItem <Args>(args, true, string.Empty); // Pause the execution of application to allow attaching of debugger. if (args.IsPause) { Console.WriteLine("Paused for debugging ...."); Console.ReadKey(); result = new BoolMessageItem <Args>(args, true, string.Empty); } else if (args.IsVersion || args.IsInfo) { AppHelper.ShowAppInfo(app); result = new BoolMessageItem <Args>(args, false, "Displaying description/version."); } else if (args.IsHelp) { var helpText = GetAppInfo(app) + Environment.NewLine + Environment.NewLine; // -help or ? if (args.Schema.IsEmpty) { helpText += "Argument definitions are not present."; } else { // 1. Get the examples var examplesText = app.OptionsExamples; // 2. Now get the options as text. helpText += ArgsUsage.BuildDescriptive(args.Schema.Items, examplesText, args.Prefix, args.Separator); } // 3. Print Console.WriteLine(helpText); result = new BoolMessageItem <Args>(args, false, "Displaying usage"); } return(result); }
/// <summary> /// <para> /// Handle possible "meta data" options of the application. /// 1. -help /// 2. -version /// 3. -pause /// </para> /// </summary> /// <param name="app"></param> /// <param name="args"></param> /// <returns></returns> public static BoolMessageItem <Args> HandleOptions(IApp app, Args args) { BoolMessageItem <Args> result = new BoolMessageItem <Args>(args, true, string.Empty); /// Pause the execution of application to allow attaching of debugger. if (args.IsPause) { Console.WriteLine("Paused for debugging ...."); Console.ReadKey(); result = new BoolMessageItem <Args>(args, true, string.Empty); } else if (args.IsVersion || args.IsInfo) { AppHelper.ShowAppInfo(app); result = new BoolMessageItem <Args>(args, false, "Displaying description/version."); } else if (args.IsHelp) { // -help or ? args.ShowUsage(app.Name); result = new BoolMessageItem <Args>(args, false, "Displaying usage"); } return(result); }