Example #1
0
 private static string getStandard(iOutputStream pOutput, string pStr)
 {
     using (StringWriter sw = new StringWriter())
     {
         Console.SetOut(sw);
         pOutput.Standard(pStr);
         return(sw.ToString().Trim());
     }
 }
Example #2
0
        /// <summary>
        /// Creates a request object from the command line arguments.
        /// </summary>
        /// <param name="pOptions">The parser options.</param>
        /// <param name="pArgs">The command line arguments.</param>
        /// <param name="pDescs">Argument descriptions.</param>
        /// <param name="pOutput">Factory for handling output.</param>
        /// <returns></returns>
        public static Request Create(CliOptions pOptions, IEnumerable <string> pArgs, IEnumerable <Description> pDescs,
                                     iOutputFactory pOutput)
        {
            iOutputStream  outputStream   = pOutput.Create();
            OutputMessages outputMessages = new OutputMessages(pOptions, outputStream);
            Validator      validator      = new Validator(outputMessages);

            return(Create(pOptions, validator, pArgs, pDescs.ToList()));
        }
 private static string getStandard(iOutputStream pOutput, string pStr)
 {
     using (StringWriter sw = new StringWriter())
     {
         Console.SetOut(sw);
         pOutput.Standard(pStr);
         return sw.ToString().Trim();
     }
 }
Example #4
0
        public void Create()
        {
            ConsoleFactory factory = new ConsoleFactory();
            iOutputStream  stream  = factory.Create();

            Assert.IsNotNull(stream);

            stream.Standard("test");
            stream.Error("test");
        }
Example #5
0
        /// <summary>
        /// Displays program greeting.
        /// </summary>
        /// <param name="pOutS"></param>
        private static void WriteGreeting(iOutputStream pOutS)
        {
            Assembly        assembly = Assembly.GetExecutingAssembly();
            FileVersionInfo fvi      = FileVersionInfo.GetVersionInfo(assembly.Location);
            string          version  = fvi.FileVersion;

            pOutS.Standard(string.Format(Resource.Greeting_Version, version));
            pOutS.Standard(Resource.Greeting_Company);
            pOutS.Standard(Resource.Greeting_Contact);
            pOutS.Standard("");
        }
Example #6
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="pOptions">The parser options</param>
 /// <param name="pOutput">The output handler</param>
 /// <param name="pUsageNamed">True to list named parameters in the "usage" description.</param>
 public OutputHelp(CliOptions pOptions, iOutputStream pOutput, bool pUsageNamed = false)
 {
     _options    = pOptions;
     _output     = pOutput;
     _usageNamed = pUsageNamed;
 }
Example #7
0
 /// <summary>
 /// Initializes this class
 /// </summary>
 public OutputMessages(CliOptions pOptions, iOutputStream pOutput)
 {
     _options = pOptions;
     _output  = pOutput;
 }
Example #8
0
        /// <summary>
        /// Entry
        /// </summary>
        /// <param name="pArgs">The arguments from the command line.</param>
        private static void Main(string[] pArgs)
        {
            ConsoleFactory consoleFactory = new ConsoleFactory();
            iOutputStream  outS           = consoleFactory.Create();

            WriteGreeting(outS);

            CliOptions options = CliOptions.WindowsStyle;

            List <Description> descs = DescriptionFactory.Create(
                options, new HelpResource(Help.ResourceManager),
                "[/domains:string] [/limit:int] [/count] [/sort:string] [/desc] [/max:int] [/min:int] pattern"
                );

            if (pArgs.Length == 0)
            {
                OutputHelp outputHelp = new OutputHelp(options, consoleFactory.Create());
                outputHelp.Show(descs);
                return;
            }

            Request req = RequestFactory.Create(options, pArgs, descs, consoleFactory);

            if (!req.Valid)
            {
                return;
            }

            string pattern = req.Get <string>("pattern");

            outS.Standard(pattern);
            outS.Standard("");

            int max = req.Contains("max") ? Math.Min(req.Get <int>("max"), _MAX_LENGTH) :_MAX_LENGTH;
            int min = req.Contains("min") ? Math.Max(req.Get <int>("min"), 1) : 1;

            IEnumerable <string> domains = (from topLevel in getTopLevel(req)
                                            from domain in getPattern(req)
                                            where !domain.StartsWith("-") &&
                                            !domain.EndsWith("-") &&
                                            domain.Length <= max &&
                                            domain.Length >= min
                                            let str = string.Format("{0}.{1}", domain, topLevel)
                                                      where str.Length <= _MAX_LENGTH &&
                                                      !AnyLabelTooLong(domain, 63)
                                                      select str).Distinct();

            if (req.Contains("count"))
            {
                outS.Standard(domains.Count().ToString(CultureInfo.InvariantCulture));
                return;
            }

            if (req.Contains("sort"))
            {
                string sort = req.Get <string>("sort").ToLower();
                domains = sort == "width"
                    ? domains.OrderBy(pDomain => pDomain.Length)
                    : domains.OrderBy(pDomain => pDomain);

                if (req.Contains("desc"))
                {
                    domains = domains.Reverse();
                }
            }

            foreach (string domain in setLimit(req, domains))
            {
                if (isFree(domain))
                {
                    outS.Standard(domain);
                }
            }
        }
Example #9
0
 /// <summary>
 /// Initializes this class
 /// </summary>
 public OutputMessages(CliOptions pOptions, iOutputStream pOutput)
 {
     _options = pOptions;
     _output = pOutput;
 }
Example #10
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="pOptions">The parser options</param>
 /// <param name="pOutput">The output handler</param>
 /// <param name="pUsageNamed">True to list named parameters in the "usage" description.</param>
 public OutputHelp(CliOptions pOptions, iOutputStream pOutput, bool pUsageNamed = false)
 {
     _options = pOptions;
     _output = pOutput;
     _usageNamed = pUsageNamed;
 }