private static void Main(string[] args) { var options = new DeploymentOptions(); if (Parser.Default.ParseArguments(args, options)) { var executeDeployment = true; _AcknowledgeArguments(options); var hostsEntries = options.HostsFileEntryValues(); if (hostsEntries.Any()) { var hostsUpdater = new FileUpdaters.HostsFile(); if (options.RemoveHostsEntries) { hostsUpdater.RemoveHostsEntries(hostsEntries); executeDeployment = false; } else { hostsUpdater.AddHostsEntries(hostsEntries); } } // check to see if the deployment should be executed, it may be aborted by above steps. if (executeDeployment) { var additionalCapabilities = new Dictionary <string, string> { { "TestSettingsFile", options.TestSettingsFile }, { "TestSettingsStore", options.TestSettingsStore } }; foreach (var capability in options.GetAdditionalCapabilities()) { additionalCapabilities.Add(capability.Key, capability.Value); } var previousAppSettings = _UpdateDeploymentConfig(additionalCapabilities); UpdaterFacade.UpdateSettingsConfig(options.TestAssembly); //reset the deployment app config to its original state //this is to avoid future runs of the app making unintended //changes to the settings _ResetDeploymentConfig(previousAppSettings); } } }
private static void _AcknowledgeArguments(DeploymentOptions options) { Console.WriteLine("\r\n==== Specified options begin ===="); // get all public static properties of DeploymentOptions type var propertyInfos = typeof(DeploymentOptions).GetProperties(); //print them all to the console foreach (var propertyInfo in propertyInfos) { if (propertyInfo.Name != "AdditionalCapabilitiesRaw") { Console.WriteLine("{0}: {1}", propertyInfo.Name, propertyInfo.GetValue(options)); } } foreach (var capability in options.GetAdditionalCapabilities()) { Console.WriteLine("{0}: {1}", capability.Key, capability.Value); } Console.WriteLine("==== Specified options end ======\r\n"); }