示例#1
0
        public void ShowUsage()
        {
            Cout.Write("Usage: " + path);

            foreach (var opt in options)
            {
                Cout.Write(" [-" + opt.Key);
                opt.Value.ShowUsage();
                Cout.Write("]");
            }

            Cout.WriteLine();
        }
示例#2
0
        public bool Process(string[] args)
        {
            Queue <string> arguments = new Queue <string>(args.Length);

            foreach (var arg in args)
            {
                arguments.Enqueue(arg);
            }

            while (arguments.Count > 0)
            {
                string arg = arguments.Dequeue();

                if ((arg.Length != 2) || (arg[0] != '-'))
                {
                    Cout.WriteLine($"Unknown command line parameter: \"{arg}\"");
                    continue;
                }

                char key = arg[1];

                if (!options.ContainsKey(key))
                {
                    ShowHelp();
                    return(false);
                }

                Option opt = options[key];

                List <string> parameters = new List <string>();

                while (arguments.Count > 0 && (arguments.Peek()[0] != '-'))
                {
                    parameters.Add(arguments.Dequeue());
                }

                if (!opt.Process(parameters))
                {
                    ShowHelp();
                    return(false);
                }
            }

            return(true);
        }
示例#3
0
        public void ShowHelp()
        {
            ShowUsage();

            Cout.WriteLine();

            foreach (var opt in options)
            {
                Cout.Write("\t-" + opt.Key);
                opt.Value.ShowHelp();
                Cout.WriteLine();
            }

            if (!string.IsNullOrWhiteSpace(comment))
            {
                Cout.WriteLine();
                Cout.WriteLine(comment);
            }
        }