Ejemplo n.º 1
0
 /// <summary>
 /// Creates an instance of HelpGenerator.
 /// </summary>
 /// <param name="results"></param>
 public HelpGenerator(CmdLineParseResults results)
 {
     ParseResults = results;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Displays the help for the command-line object.
        /// </summary>
        /// <param name="results"></param>
        public static void WriteHelp(CmdLineParseResults results)
        {
            var generator = ClassFactory.CreateObject <HelpGenerator>(results);

            generator.WriteHelp(results);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Writes the console application help to the console.
        /// </summary>
        /// <param name="results"></param>
        public virtual void WriteHelp(CmdLineParseResults results)
        {
            if (results.Errors.Length > 0)
            {
                if (BaCon.ErrorMessageTitle.HasValue())
                {
                    using (var clr = new BaConColor(BaCon.Theme.ErrorTitleText, BaCon.Theme.ErrorTitleBackground))
                        BaCon.WriteLine(BaCon.ErrorMessageTitle);
                }
                foreach (var err in results.Errors)
                {
                    BaCon.WriteLine(err, BaCon.Theme.ErrorColor, " > ", "\t");
                }
                BaCon.WriteLine();
            }

            var usage = GetUsage();

            if (usage.HasValue())
            {
                BaCon.WriteLine();
                BaCon.WriteLine("[USAGE]");
                BaCon.WriteLine();
                BaCon.WriteLine(usage, BaCon.Theme.UsageColor, "", "\t");
                BaCon.WriteLine();
            }

            var showSectionTitle = true;

            foreach (var prop in results.Properties.Where(p => p.ShowInHelp))
            {
                var propHelp = GetPropertyHelp(prop);
                if (propHelp.IsEmpty())
                {
                    continue;
                }

                if (showSectionTitle)
                {
                    // We only want to display the section title if we
                    // are displaying help text for properties.
                    BaCon.WriteLine();
                    BaCon.WriteLine("[LIST OF VALID ARGUMENTS]");
                    showSectionTitle = false;
                }

                BaCon.WriteLine();                 // Place a line break between properties.

                var clr = prop.Required ? BaCon.Theme.RequiredArgColor : BaCon.Theme.StandardArgColor;
                BaCon.WriteLine(propHelp, clr, "", "\t");
                BaCon.WriteLine();
            }

            var exitCodes = GetExitCodesDisplay();

            if (exitCodes.HasValue())
            {
                BaCon.WriteLine();
                BaCon.WriteLine("[EXIT CODES]");
                BaCon.WriteLine();
                BaCon.WriteLine(exitCodes);
                BaCon.WriteLine();
            }
        }