private static int Main()

in src/XmlStats/XmlStats.cs [51:147]


        private static int Main(string[] args)
        {
            bool summary = true;
            bool logo = true;
            XmlStats xs = new XmlStats();
            List<string> files = new List<string>();

            for (int i = 0; i < args.Length; i++)
            {
                var arg = args[i];
                if (arg.Length > 1 && arg[0] == '-')
                {
                    string larg = arg.Trim('-').ToLower(CultureInfo.CurrentCulture);
                    switch (larg)
                    {
                        case "?":
                        case "h":
                        case "help":
                            PrintUsage();
                            return 1;
                        case "f":
                            if (i + 1 == args.Length)
                            {
                                Console.WriteLine("missing file name after '-f' argument");
                                PrintUsage();
                                return 1;
                            }
                            else
                            {
                                files = ReadFileNames(args[++i]);
                            }
                            break;
                        case "v":
                            summary = false;
                            break;
                        case "wn":
                            xs._whiteSpace = WhitespaceHandling.None;
                            break;
                        case "ws":
                            xs._whiteSpace = WhitespaceHandling.Significant;
                            break;
                        case "wa":
                            xs._whiteSpace = WhitespaceHandling.All;
                            break;
                        case "nologo":
                            logo = false;
                            break;
                        default: // invalid opt
                            Console.WriteLine("invalid option '" + arg + "'");
                            PrintUsage();
                            return 1;
                    }
                }
                else if (arg.IndexOf("://", StringComparison.InvariantCulture) > 0)
                {
                    // url
                    files.Add(arg);
                }
                else if (arg.IndexOf("*", StringComparison.InvariantCulture) >= 0 || arg.IndexOf("?", StringComparison.InvariantCulture) >= 0)
                {
                    // resolve wildcards
                    string path = Path.Combine(Directory.GetCurrentDirectory(), arg);
                    string dir = Path.GetDirectoryName(path);
                    string name = Path.GetFileName(path);
                    string[] names = Directory.GetFiles(dir, name);

                    foreach (string file in names)
                    {
                        files.Add(file);
                    }
                }
                else
                {
                    files.Add(arg);
                }
            }

            if (files.Count == 0)
            {
                PrintUsage();
                return 1;
            }

            if (logo)
            {
                Console.WriteLine("*** XmlStats " + typeof(XmlStats).Assembly.GetName().Version.ToString() + " by Chris Lovett and Andreas Lang");
                Console.WriteLine();
            }

            xs.ProcessFiles(files.ToArray(), summary, Console.Out, "\n");

            if (files.Count > 1)
            {
                Console.WriteLine("*** XmlStats ended.");
            }
            return 0;
        }