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; }
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; }
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); }
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; }
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; }