コード例 #1
0
ファイル: ParseArgs.cs プロジェクト: sharmaar/csmanage
 internal IEnumerable<FlagTokens> GetTokens(string[] args)
 {
     StringCollection rest = new StringCollection();
     for (int i = 0; i < args.Length; i++)
     {
         var arg = args[i];
         if (arg.StartsWith("/"))
         {
             FlagTokens tok = new FlagTokens();
             tok.flag = arg;
             tok.args = null;
             int flagArgsStart = arg.IndexOf(':');
             if (flagArgsStart > 0)
             {
                 tok.flag = arg.Substring(0, flagArgsStart);
                 tok.args = arg.Substring(flagArgsStart+1).Split(';');
             }
             yield return tok;
         }
         else
         {
             rest.Add(arg);
         }
     }
     if (rest.Count > 0)
     {
         FlagTokens tok = new FlagTokens();
         tok.flag = null;
         tok.args = new string[rest.Count];
         rest.CopyTo(tok.args, 0);
         yield return tok;
     }
     yield break;
 }
コード例 #2
0
        internal IEnumerable <FlagTokens> GetTokens(string[] args)
        {
            StringCollection rest = new StringCollection();

            for (int i = 0; i < args.Length; i++)
            {
                var arg = args[i];
                if (arg.StartsWith("/"))
                {
                    FlagTokens tok = new FlagTokens();
                    tok.flag = arg;
                    tok.args = null;
                    int flagArgsStart = arg.IndexOf(':');
                    if (flagArgsStart > 0)
                    {
                        tok.flag = arg.Substring(0, flagArgsStart);
                        tok.args = arg.Substring(flagArgsStart + 1).Split(';');
                    }
                    yield return(tok);
                }
                else
                {
                    rest.Add(arg);
                }
            }
            if (rest.Count > 0)
            {
                FlagTokens tok = new FlagTokens();
                tok.flag = null;
                tok.args = new string[rest.Count];
                rest.CopyTo(tok.args, 0);
                yield return(tok);
            }
            yield break;
        }
コード例 #3
0
        internal static IEnumerable <FlagTokens> GetTokens(string[] args)
        {
            var        rest = new StringCollection();
            FlagTokens tok;

            foreach (var arg in args)
            {
                if (arg.StartsWith("/"))
                {
                    tok = new FlagTokens
                    {
                        Flag = arg,
                        Args = null
                    };
                    var flagArgsStart = arg.IndexOf(':');
                    if (flagArgsStart > 0)
                    {
                        tok.Flag = arg.Substring(0, flagArgsStart);
                        tok.Args = new[] { arg.Substring(flagArgsStart + 1) };
                    }
                    yield return(tok);
                }
                else
                {
                    rest.Add(arg);
                }
            }
            if (rest.Count <= 0)
            {
                yield break;
            }
            tok = new FlagTokens
            {
                Flag = null,
                Args = new string[rest.Count]
            };
            rest.CopyTo(tok.Args, 0);
            yield return(tok);
        }
コード例 #4
0
        private void ParseArguments(string[] args)
        {
            FlagTokens rest   = null;
            bool       noArgs = true;

            foreach (var tok in GetTokens(args))
            {
                noArgs = false;
                if (tok.flag == null)
                {
                    rest = tok;
                }
                else
                {
                    switch (tok.flag.ToLowerInvariant())
                    {
                    case "/?":
                    case "/help":
                        command.Usage();
                        return;

                    case "/hosted-service":
                    {
                        CSManageCommand.HostedServiceName = tok.args[0];
                        break;
                    }

                    case "/storage-service":
                    {
                        CSManageCommand.StorageServiceName = tok.args[0];
                        break;
                    }

                    case "/affinity-group":
                    {
                        CSManageCommand.AffinityGroupName = tok.args[0];
                        break;
                    }

                    case "/name":
                    {
                        CSManageCommand.DeploymentName = tok.args[0];
                        break;
                    }

                    case "/show-deployments":
                    {
                        CSManageCommand.ShowDeploymentString = tok.args[0];
                        break;
                    }

                    case "/slot":
                    {
                        CSManageCommand.DeploymentSlot = tok.args[0];
                        break;
                    }

                    case "/key-type":
                    {
                        CSManageCommand.KeyType = tok.args[0];
                        break;
                    }

                    case "/config":
                    {
                        CSManageCommand.ConfigFileLocation = tok.args[0];
                        break;
                    }

                    case "/package":
                    {
                        CSManageCommand.PackageLocation = tok.args[0];
                        break;
                    }

                    case "/status":
                    {
                        CSManageCommand.DeploymentStatus = tok.args[0];
                        break;
                    }

                    case "/mode":
                    {
                        CSManageCommand.Mode = tok.args[0];
                        break;
                    }

                    case "/label":
                    {
                        CSManageCommand.DeploymentLabel = tok.args[0];
                        break;
                    }

                    case "/role":
                    {
                        CSManageCommand.RoleToUpgrade = tok.args[0];
                        break;
                    }

                    case "/domain":
                    {
                        CSManageCommand.UpgradeDomainString = tok.args[0];
                        break;
                    }

                    case "/source-deployment":
                    {
                        CSManageCommand.SourceDeploymentName = tok.args[0];
                        break;
                    }

                    case "/production-slot":
                    {
                        CSManageCommand.DeploymentNameInProduction = tok.args[0];
                        break;
                    }

                    case "/op-id":
                    {
                        CSManageCommand.OperationId = tok.args[0];
                        break;
                    }

                    case "/cert-file":
                    {
                        CSManageCommand.Cert_file = tok.args[0];
                        break;
                    }

                    case "/cert-format":
                    {
                        CSManageCommand.Cert_format = tok.args[0];
                        break;
                    }

                    case "/cert-password":
                    {
                        CSManageCommand.Cert_Password = tok.args[0];
                        break;
                    }

                    case "/cert-thumbprint":
                    {
                        CSManageCommand.Cert_Thumbprint = tok.args[0];
                        break;
                    }

                    case "/cert-algorithm":
                    {
                        CSManageCommand.Cert_Algorithm = tok.args[0];
                        break;
                    }
                    }
                }
            }
            if (noArgs)
            {
                command.Usage();
                return;
            }
            foreach (var tok in GetTokens(args))
            {
                if (tok.flag == null)
                {
                    continue;
                }
                switch (tok.flag.ToLowerInvariant())
                {
                case "/view-properties":
                {
                    ((new ViewPropertiesCommand())).Run();
                    return;
                }

                case "/list-hosted-services":
                {
                    (new ListHostedServicesCommand()).Run();
                    return;
                }

                case "/list-affinity-groups":
                {
                    (new ListAffinityGroupsCommmand()).Run();
                    return;
                }

                case "/list-storage-services":
                {
                    (new ListStorageServicesCommmand()).Run();
                    return;
                }

                case "/view-keys":
                {
                    (new GetStorageKeysCommmand()).Run();
                    return;
                }

                case "/regenerate-key":
                {
                    (new RegenerateStorageServiceKeysCommmand()).Run();
                    return;
                }

                case "/view-deployment":
                {
                    (new GetDeploymentCommand()).Run();
                    return;
                }

                case "/create-deployment":
                {
                    (new CreateDeploymentCommand()).Run();
                    return;
                }

                case "/delete-deployment":
                {
                    (new DeleteDeploymentCommand()).Run();
                    return;
                }

                case "/swap-deployment":
                {
                    (new SwapDeploymentCommand()).Run();
                    return;
                }

                case "/change-deployment-config":
                {
                    (new ChangeDeploymentConfigCommand()).Run();
                    return;
                }

                case "/update-deployment":
                {
                    (new UpdateDeploymentStatusCommand()).Run();
                    return;
                }

                case "/upgrade-deployment":
                {
                    (new UpgradeDeploymentCommand()).Run();
                    return;
                }

                case "/walk-upgrade-domain":
                {
                    (new WalkUpgradeDomainCommand()).Run();
                    return;
                }

                case "/get-operation-status":
                {
                    (new GetResultCommand()).Run();
                    return;
                }

                case "/add-certificate":
                {
                    (new AddCertificatesCommand()).Run();
                    return;
                }

                case "/view-certificate":
                {
                    (new GetCertificateCommand()).Run();
                    return;
                }

                case "/list-certificates":
                {
                    (new ListCertificatesCommand()).Run();
                    return;
                }

                case "/delete-certificate":
                {
                    (new DeleteCertificateCommand()).Run();
                    return;
                }

                case "/list-operating-systems":
                {
                    (new ListOperatingSystemsCommmand()).Run();
                    return;
                }

                default:
                {
                    LogError("Unknown Flag {0}", tok.flag);
                    return;
                }
                }
            }
            LogError("No command specified");
            return;
        }
コード例 #5
0
ファイル: Arguments.cs プロジェクト: nhcloud/SqlEtl
 internal static IEnumerable<FlagTokens> GetTokens(string[] args)
 {
     var rest = new StringCollection();
     FlagTokens tok;
     foreach (var arg in args)
     {
         if (arg.StartsWith("/"))
         {
             tok = new FlagTokens
             {
                 Flag = arg,
                 Args = null
             };
             var flagArgsStart = arg.IndexOf(':');
             if (flagArgsStart > 0)
             {
                 tok.Flag = arg.Substring(0, flagArgsStart);
                 tok.Args = new[] { arg.Substring(flagArgsStart + 1) };
             }
             yield return tok;
         }
         else
         {
             rest.Add(arg);
         }
     }
     if (rest.Count <= 0) yield break;
     tok = new FlagTokens
     {
         Flag = null,
         Args = new string[rest.Count]
     };
     rest.CopyTo(tok.Args, 0);
     yield return tok;
 }