Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }