public static Bootstrapper AddDefaults(this Bootstrapper bootstrapper, DefaultFeatures features = DefaultFeatures.All) { _ = bootstrapper ?? throw new ArgumentNullException(nameof(bootstrapper)); if (features.HasFlag(DefaultFeatures.BootstrapperConfigurators)) { bootstrapper.AddBootstrapperConfigurators(); } if (features.HasFlag(DefaultFeatures.Logging)) { bootstrapper.AddDefaultLogging(); } if (features.HasFlag(DefaultFeatures.Settings)) { bootstrapper.AddDefaultSettings(); } if (features.HasFlag(DefaultFeatures.EnvironmentVariables)) { bootstrapper.AddEnvironmentVariables(); } if (features.HasFlag(DefaultFeatures.ConfigurationFiles)) { bootstrapper.AddDefaultConfigurationFiles(); } if (features.HasFlag(DefaultFeatures.BuildCommands)) { bootstrapper.AddBuildCommands(); } if (features.HasFlag(DefaultFeatures.HostingCommands)) { bootstrapper.AddHostingCommands(); } if (features.HasFlag(DefaultFeatures.CustomCommands)) { bootstrapper.AddCustomCommands(); } if (features.HasFlag(DefaultFeatures.Shortcodes)) { bootstrapper.AddDefaultShortcodes(); } if (features.HasFlag(DefaultFeatures.Namespaces)) { bootstrapper.AddDefaultNamespaces(); } if (features.HasFlag(DefaultFeatures.Pipelines)) { bootstrapper.AddDefaultPipelines(); } return(bootstrapper); }