private static void ParseArgs()

in code/Tools/Ops/ManageServerState/Program.cs [201:293]


        private static void ParseArgs(string[] args)
        {
            int i = 0;
            while (i < args.Length)
            {
                if (args[i].Equals("-All", StringComparison.CurrentCultureIgnoreCase))
                {
                    doAll = true;
                    i++;
                    continue;
                }
                else if (args[i].Equals("-Clean", StringComparison.CurrentCultureIgnoreCase))
                {
                    doClean = true;
                    i++;
                    continue;
                }
                else if (args[i].Equals("-Create", StringComparison.CurrentCultureIgnoreCase))
                {
                    doCreate = true;
                    i++;
                    continue;
                }
                else if (args[i].Equals("-Force", StringComparison.CurrentCultureIgnoreCase))
                {
                    forceOperation = true;
                    i++;
                    continue;
                }
                else if (args[i].StartsWith("-Name=", StringComparison.CurrentCultureIgnoreCase))
                {
                    int prefixLen = "-Name=".Length;
                    environmentName = args[i].Substring(prefixLen);
                    i++;
                    continue;
                }
                else if (args[i].Equals("-Queues", StringComparison.CurrentCultureIgnoreCase))
                {
                    doQueues = true;
                    i++;
                    continue;
                }
                else if (args[i].Equals("-Tables", StringComparison.CurrentCultureIgnoreCase))
                {
                    doTables = true;
                    i++;
                    continue;
                }
                else if (args[i].Equals("-Logs", StringComparison.CurrentCultureIgnoreCase))
                {
                    doLogs = true;
                    i++;
                    continue;
                }
                else
                {
                    // default case
                    Console.WriteLine("Unrecognized parameter: {0}", args[i]);
                    i++;
                }
            }

            if (string.IsNullOrWhiteSpace(environmentName))
            {
                Console.WriteLine("Usage error: must specify name of environment");
                Usage();
                Environment.Exit(0);
            }

            if (!(doClean || doCreate))
            {
                Console.WriteLine("Usage error: must specify an action of clean or create");
                Usage();
                Environment.Exit(0);
            }

            if (doClean && doCreate)
            {
                Console.WriteLine("Usage error: cannot perform both clean and create actions");
                Usage();
                Environment.Exit(0);
            }

            // if action is clean or create, then must specify target objects for the action
            if (!(doAll || doQueues || doTables || doLogs))
            {
                Console.WriteLine("Usage error: must specify which objects to clean or create");
                Usage();
                Environment.Exit(0);
            }

            return;
        }