private static Option[] ImplicitRestoreOptions(bool showHelp, bool useShortOptions, bool includeRuntimeOption, bool includeNoDependenciesOption) { var options = new Option[] { new ForwardedOption <IEnumerable <string> >( useShortOptions ? new string[] { "-s", "--source" } : new string[] { "--source" }, showHelp ? LocalizableStrings.CmdSourceOptionDescription : string.Empty) { ArgumentHelpName = LocalizableStrings.CmdSourceOption, IsHidden = !showHelp }.ForwardAsSingle(o => $"-property:RestoreSources={string.Join("%3B", o)}") .AllowSingleArgPerToken(), new ForwardedOption <string>( "--packages", showHelp ? LocalizableStrings.CmdPackagesOptionDescription : string.Empty) { ArgumentHelpName = LocalizableStrings.CmdPackagesOption, IsHidden = !showHelp }.ForwardAsSingle(o => $"-property:RestorePackagesPath={CommandDirectoryContext.GetFullPath(o)}"), CommonOptions.CurrentRuntimeOption(LocalizableStrings.CmdCurrentRuntimeOptionDescription), new ForwardedOption <bool>( "--disable-parallel", showHelp ? LocalizableStrings.CmdDisableParallelOptionDescription : string.Empty) { IsHidden = !showHelp }.ForwardAs("-property:RestoreDisableParallel=true"), new ForwardedOption <string>( "--configfile", showHelp ? LocalizableStrings.CmdConfigFileOptionDescription : string.Empty) { ArgumentHelpName = LocalizableStrings.CmdConfigFileOption, IsHidden = !showHelp }.ForwardAsSingle(o => $"-property:RestoreConfigFile={CommandDirectoryContext.GetFullPath(o)}"), new ForwardedOption <bool>( "--no-cache", showHelp ? LocalizableStrings.CmdNoCacheOptionDescription : string.Empty) { IsHidden = !showHelp }.ForwardAs("-property:RestoreNoCache=true"), new ForwardedOption <bool>( "--ignore-failed-sources", showHelp ? LocalizableStrings.CmdIgnoreFailedSourcesOptionDescription : string.Empty) { IsHidden = !showHelp }.ForwardAs("-property:RestoreIgnoreFailedSources=true"), new ForwardedOption <bool>( useShortOptions ? new string[] { "-f", "--force" } : new string[] { "--force" }, LocalizableStrings.CmdForceRestoreOptionDescription) { IsHidden = !showHelp }.ForwardAs("-property:RestoreForce=true"), CommonOptions.PropertiesOption() }; if (includeRuntimeOption) { options = options.Append( new ForwardedOption <IEnumerable <string> >( useShortOptions ? new string[] { "-r", "--runtime" } : new string[] { "--runtime" }, LocalizableStrings.CmdRuntimeOptionDescription) { ArgumentHelpName = LocalizableStrings.CmdRuntimeOption, IsHidden = !showHelp }.ForwardAsSingle(o => $"-property:RuntimeIdentifiers={string.Join("%3B", o)}") .AllowSingleArgPerToken() .AddSuggestions(Suggest.RunTimesFromProjectFile()) ).ToArray(); } if (includeNoDependenciesOption) { options = options.Append( new ForwardedOption <bool>( "--no-dependencies", LocalizableStrings.CmdNoDependenciesOptionDescription) { IsHidden = !showHelp }.ForwardAs("-property:RestoreRecursive=false") ).ToArray(); } return(options); }
static CommandLineConfigs() { UninstallRootCommand.AddArgument(new Argument <IEnumerable <string> > { Name = LocalizableStrings.UninstallNoOptionArgumentName, Description = LocalizableStrings.UninstallNoOptionArgumentDescription }); UninstallRootCommand.AddCommand(ListCommand); var supportedBundleTypeNames = SupportedBundleTypeConfigs.GetSupportedBundleTypes().Select(type => type.OptionName); var supportedUninstallBundleTypeOptions = new Option[] { UninstallSdkOption, UninstallRuntimeOption, UninstallAspNetRuntimeOption, UninstallHostingBundleOption } .Where(option => supportedBundleTypeNames.Contains(option.Name)); var supportedListBundleTypeOptions = new Option[] { ListSdkOption, ListRuntimeOption, ListAspNetRuntimeOption, ListHostingBundleOption } .Where(option => supportedBundleTypeNames.Contains(option.Name)); UninstallAuxOptions = supportedUninstallBundleTypeOptions .Append(VerbosityOption) .Append(UninstallX64Option) .Append(UninstallX86Option) .Append(VersionOption) .Append(DryRunOption) .Append(YesOption); ListAuxOptions = supportedListBundleTypeOptions .Append(VerbosityOption) .Append(ListX64Option) .Append(ListX86Option); foreach (var option in UninstallMainOptions .Concat(UninstallAuxOptions) .OrderBy(option => option.Name)) { UninstallRootCommand.AddOption(option); } foreach (var option in ListAuxOptions .OrderBy(option => option.Name)) { ListCommand.AddOption(option); } ListCommand.Handler = CommandHandler.Create(ExceptionHandler.HandleException(() => ListCommandExec.Execute())); UninstallRootCommand.Handler = CommandHandler.Create(ExceptionHandler.HandleException(() => UninstallCommandExec.Execute())); CommandLineParseResult = UninstallRootCommand.Parse(Environment.GetCommandLineArgs()); }