in Configurator/Program.cs [355:409]
private static CLIExitCode SetConfigurationTypeAndExecutionMode(ServerInstallation serverInstallation)
{
var action = CommandLineParser.GetMatchingProvidedOption("action");
var serverIsConfigured = serverInstallation.Controller.Settings.GeneralSettingsFileExists;
if (action == null)
{
serverInstallation.Controller.ConfigurationType = serverIsConfigured
? ConfigurationType.Reconfigure
: ConfigurationType.Configure;
}
else
{
var noShow = false;
if (action.Value.Equals("removenoshow", StringComparison.InvariantCultureIgnoreCase))
{
noShow = true;
action.Value = "remove";
}
if (!Enum.TryParse(action.Value, true, out ConfigurationType configurationType)
|| configurationType == ConfigurationType.None
|| configurationType == ConfigurationType.Incomplete
|| configurationType == ConfigurationType.All)
{
return new CLIExitCode(ExitCode.InvalidAction, action.Value, action.Name);
}
// Set reconfigure if server is already configured.
if (configurationType == ConfigurationType.Configure
&& serverIsConfigured)
{
configurationType = ConfigurationType.Reconfigure;
}
switch (configurationType)
{
case ConfigurationType.Reconfigure:
case ConfigurationType.Configure:
AppConfiguration.ExecutionMode = ExecutionMode.Configure;
break;
case ConfigurationType.Upgrade:
AppConfiguration.ExecutionMode = ExecutionMode.Upgrade;
break;
case ConfigurationType.Remove:
AppConfiguration.ExecutionMode = noShow
? ExecutionMode.RemoveNoShow
: ExecutionMode.Remove;
break;
}
serverInstallation.Controller.ConfigurationType = configurationType;
}
return new CLIExitCode(ExitCode.Success);
}