private static Option[] FullRestoreOptions() { var fullRestoreOptions = AddImplicitRestoreOptions(new Option[] { CommonOptions.HelpOption() }, true, true); return(fullRestoreOptions.Concat( new Option[] { CommonOptions.VerbosityOption(), Create.Option( "--interactive", LocalizableStrings.CmdInteractiveRestoreOptionDescription, Accept.NoArguments() .ForwardAs("-property:NuGetInteractive=true")), Create.Option( "--use-lock-file", LocalizableStrings.CmdUseLockFileOptionDescription, Accept.NoArguments() .ForwardAs("-property:RestorePackagesWithLockFile=true")), Create.Option( "--locked-mode", LocalizableStrings.CmdLockedModeOptionDescription, Accept.NoArguments() .ForwardAs("-property:RestoreLockedMode=true")), Create.Option( "--lock-file-path", LocalizableStrings.CmdLockFilePathOptionDescription, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.CmdLockFilePathOption) .ForwardAsSingle(o => $"-property:NuGetLockFilePath={o.Arguments.Single()}")), Create.Option( "--force-evaluate", LocalizableStrings.CmdReevaluateOptionDescription, Accept.NoArguments() .ForwardAs("-property:RestoreForceEvaluate=true")) }).ToArray()); }
public static Command Pack() => CreateWithRestoreOptions.Command( "pack", LocalizableStrings.AppFullName, Accept.ZeroOrMoreArguments() .With(name: CommonLocalizableStrings.ProjectArgumentName, description: CommonLocalizableStrings.ProjectArgumentDescription), CommonOptions.HelpOption(), Create.Option( "-o|--output", LocalizableStrings.CmdOutputDirDescription, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.CmdOutputDir) .ForwardAsSingle(o => $"-property:PackageOutputPath={CommandDirectoryContext.GetFullPath(o.Arguments.Single())}")), Create.Option( "--no-build", LocalizableStrings.CmdNoBuildOptionDescription, Accept.NoArguments().ForwardAs("-property:NoBuild=true")), Create.Option( "--include-symbols", LocalizableStrings.CmdIncludeSymbolsDescription, Accept.NoArguments().ForwardAs("-property:IncludeSymbols=true")), Create.Option( "--include-source", LocalizableStrings.CmdIncludeSourceDescription, Accept.NoArguments().ForwardAs("-property:IncludeSource=true")), CommonOptions.ConfigurationOption(LocalizableStrings.ConfigurationOptionDescription), CommonOptions.VersionSuffixOption(), Create.Option( "-s|--serviceable", LocalizableStrings.CmdServiceableDescription, Accept.NoArguments().ForwardAs("-property:Serviceable=true")), CommonOptions.InteractiveMsBuildForwardOption(), CommonOptions.NoRestoreOption(), CommonOptions.VerbosityOption());
public static Option IgnoreFailedSourcesOption() { return(Create.Option( "--ignore-failed-sources", LocalizableStrings.CmdIgnoreFailedSourcesOptionDescription, Accept.NoArguments().ForwardAs("--ignore-failed-sources"))); }
public static Command ToolUpdate() { return(Create.Command("update", LocalizableStrings.CommandDescription, Accept.ExactlyOneArgument(errorMessage: o => LocalizableStrings.SpecifyExactlyOnePackageId) .With(name: LocalizableStrings.PackageIdArgumentName, description: LocalizableStrings.PackageIdArgumentDescription), Create.Option( "-g|--global", LocalizableStrings.GlobalOptionDescription, Accept.NoArguments()), Create.Option( "--tool-path", LocalizableStrings.ToolPathOptionDescription, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.ToolPathOptionName)), Create.Option( "--configfile", LocalizableStrings.ConfigFileOptionDescription, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.ConfigFileOptionName)), Create.Option( "--add-source", LocalizableStrings.AddSourceOptionDescription, Accept.OneOrMoreArguments() .With(name: LocalizableStrings.AddSourceOptionName)), Create.Option( "--framework", LocalizableStrings.FrameworkOptionDescription, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.FrameworkOptionName)), CommonOptions.HelpOption(), CommonOptions.VerbosityOption())); }
public static Command Pack() => Create.Command( "pack", LocalizableStrings.AppFullName, Accept.ZeroOrMoreArguments(), CommonOptions.HelpOption(), Create.Option( "-o|--output", LocalizableStrings.CmdOutputDirDescription, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.CmdOutputDir) .ForwardAsSingle(o => $"/p:PackageOutputPath={o.Arguments.Single()}")), Create.Option( "--no-build", LocalizableStrings.CmdNoBuildOptionDescription, Accept.NoArguments().ForwardAs("/p:NoBuild=true")), Create.Option( "--include-symbols", LocalizableStrings.CmdIncludeSymbolsDescription, Accept.NoArguments().ForwardAs("/p:IncludeSymbols=true")), Create.Option( "--include-source", LocalizableStrings.CmdIncludeSourceDescription, Accept.NoArguments().ForwardAs("/p:IncludeSource=true")), CommonOptions.ConfigurationOption(), CommonOptions.VersionSuffixOption(), Create.Option( "-s|--serviceable", LocalizableStrings.CmdServiceableDescription, Accept.NoArguments().ForwardAs("/p:Serviceable=true")), CommonOptions.VerbosityOption());
public static Command ToolSearch() { return(Create.Command( "search", LocalizableStrings.CommandDescription, Accept.ZeroOrMoreArguments() .With(name: LocalizableStrings.SearchTermArgumentName, description: LocalizableStrings.SearchTermDescription), Create.Option( $"--detail", LocalizableStrings.DetailDescription, Accept.NoArguments()), Create.Option( $"--skip", LocalizableStrings.SkipDescription, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.SkipArgumentName)), Create.Option( $"--take", LocalizableStrings.TakeDescription, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.TakeArgumentName)), Create.Option( $"--prerelease", LocalizableStrings.PrereleaseDescription, Accept.NoArguments()), Create.Option( $"--semver-level", LocalizableStrings.SemVerLevelDescription, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.SemVerLevelArgumentName)), CommonOptions.HelpOption())); }
public static Command ToolUninstall() { return(Create.Command("uninstall", LocalizableStrings.CommandDescription, Accept.ExactlyOneArgument(errorMessage: o => LocalizableStrings.SpecifyExactlyOnePackageId) .With(name: LocalizableStrings.PackageIdArgumentName, description: LocalizableStrings.PackageIdArgumentDescription), Create.Option( $"-g|--{ToolAppliedOption.GlobalOption}", LocalizableStrings.GlobalOptionDescription, Accept.NoArguments()), Create.Option( $"--{ToolAppliedOption.LocalOption}", LocalizableStrings.LocalOptionDescription, Accept.NoArguments()), Create.Option( $"--{ToolAppliedOption.ToolPathOption}", LocalizableStrings.ToolPathOptionDescription, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.ToolPathOptionName)), Create.Option( $"--{ToolAppliedOption.ToolManifest}", LocalizableStrings.ManifestPathOptionDescription, Accept.ZeroOrOneArgument() .With(name: LocalizableStrings.ManifestPathOptionName)), CommonOptions.HelpOption())); }
public static Command ListPackageReferences() => Create.Command( "package", LocalizableStrings.AppFullName, Accept.NoArguments(), CommonOptions.HelpOption(), Create.Option("--outdated", LocalizableStrings.CmdOutdatedDescription, Accept.NoArguments().ForwardAs("--outdated")), Create.Option("--framework", LocalizableStrings.CmdFrameworkDescription, Accept.OneOrMoreArguments() .With(name: LocalizableStrings.CmdFramework) .ForwardAsMany(o => ForwardedArguments("--framework", o.Arguments))), Create.Option("--include-transitive", LocalizableStrings.CmdTransitiveDescription, Accept.NoArguments().ForwardAs("--include-transitive")), Create.Option("--include-prerelease", LocalizableStrings.CmdPrereleaseDescription, Accept.NoArguments().ForwardAs("--include-prerelease")), Create.Option("--highest-patch", LocalizableStrings.CmdHighestPatchDescription, Accept.NoArguments().ForwardAs("--highest-patch")), Create.Option("--highest-minor", LocalizableStrings.CmdHighestMinorDescription, Accept.NoArguments().ForwardAs("--highest-minor")), Create.Option("--config", LocalizableStrings.CmdConfigDescription, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.CmdConfig) .ForwardAsMany(o => new [] { "--config", o.Arguments.Single() })), Create.Option("--source", LocalizableStrings.CmdSourceDescription, Accept.OneOrMoreArguments() .With(name: LocalizableStrings.CmdSource) .ForwardAsMany(o => ForwardedArguments("--source", o.Arguments))));
public static Command ToolRestore() { return(Create.Command( "restore", LocalizableStrings.CommandDescription, Accept.NoArguments(), Create.Option( "--configfile", LocalizableStrings.ConfigFileOptionDescription, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.ConfigFileOptionName)), Create.Option( "--add-source", LocalizableStrings.AddSourceOptionDescription, Accept.OneOrMoreArguments() .With(name: LocalizableStrings.AddSourceOptionName)), Create.Option( "--tool-manifest", LocalizableStrings.ManifestPathOptionDescription, Accept.ZeroOrOneArgument() .With(name: LocalizableStrings.ManifestPathOptionName)), ToolCommandRestorePassThroughOptions.DisableParallelOption(), ToolCommandRestorePassThroughOptions.IgnoreFailedSourcesOption(), ToolCommandRestorePassThroughOptions.NoCacheOption(), ToolCommandRestorePassThroughOptions.InteractiveRestoreOption(), CommonOptions.HelpOption(), CommonOptions.VerbosityOption())); }
public static Command Build() => CreateWithRestoreOptions.Command( "build", LocalizableStrings.AppFullName, Accept.ZeroOrMoreArguments() .With(name: CommonLocalizableStrings.CmdProjectFile, description: "The MSBuild project file to build. If a project file is not specified, MSBuild searches the current working directory for a file that has a file extension that ends in `proj` and uses that file."), CommonOptions.HelpOption(), Create.Option( "-o|--output", LocalizableStrings.OutputOptionDescription, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.OutputOptionName) .ForwardAsSingle(o => $"-property:OutputPath={o.Arguments.Single()}")), CommonOptions.FrameworkOption(), CommonOptions.RuntimeOption(), CommonOptions.ConfigurationOption(), CommonOptions.VersionSuffixOption(), Create.Option( "--no-incremental", LocalizableStrings.NoIncrementialOptionDescription), Create.Option( "--no-dependencies", LocalizableStrings.NoDependenciesOptionDescription, Accept.NoArguments() .ForwardAs("-property:BuildProjectReferences=false")), CommonOptions.NoRestoreOption(), CommonOptions.VerbosityOption());
public static Option DisableParallelOption() { return(Create.Option( "--disable-parallel", LocalizableStrings.CmdDisableParallelOptionDescription, Accept.NoArguments().ForwardAs("--disable-parallel"))); }
public static Command InstallTool() { return(Create.Command("tool", LocalizableStrings.CommandDescription, Accept.ExactlyOneArgument(errorMessage: o => LocalizableStrings.SpecifyExactlyOnePackageId) .With(name: LocalizableStrings.PackageIdArgumentName, description: LocalizableStrings.PackageIdArgumentDescription), Create.Option( "-g|--global", LocalizableStrings.GlobalOptionDescription, Accept.NoArguments()), Create.Option( "--version", LocalizableStrings.VersionOptionDescription, Accept.ExactlyOneArgument()), Create.Option( "--configfile", LocalizableStrings.ConfigFileOptionDescription, Accept.ExactlyOneArgument()), Create.Option( "--source", LocalizableStrings.SourceOptionDescription, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.SourceOptionName)), Create.Option( "-f|--framework", LocalizableStrings.FrameworkOptionDescription, Accept.ExactlyOneArgument()), CommonOptions.HelpOption(), CommonOptions.VerbosityOption())); }
public static Option NoCacheOption() { return(Create.Option( "--no-cache", LocalizableStrings.CmdNoCacheOptionDescription, Accept.NoArguments().ForwardAs("--no-cache"))); }
public static Command Build() => CreateWithRestoreOptions.Command( "build", LocalizableStrings.AppFullName, Accept.ZeroOrMoreArguments() .With(name: CommonLocalizableStrings.ProjectArgumentName, description: CommonLocalizableStrings.ProjectArgumentDescription), CommonOptions.HelpOption(), Create.Option( "-o|--output", LocalizableStrings.OutputOptionDescription, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.OutputOptionName) .ForwardAsSingle(o => $"-property:OutputPath={CommandDirectoryContext.GetFullPath(o.Arguments.Single())}")), CommonOptions.FrameworkOption(LocalizableStrings.FrameworkOptionDescription), CommonOptions.ConfigurationOption(LocalizableStrings.ConfigurationOptionDescription), CommonOptions.RuntimeOption(LocalizableStrings.RuntimeOptionDescription), CommonOptions.VersionSuffixOption(), Create.Option( "--no-incremental", LocalizableStrings.NoIncrementalOptionDescription), Create.Option( "--no-dependencies", LocalizableStrings.NoDependenciesOptionDescription, Accept.NoArguments() .ForwardAs("-property:BuildProjectReferences=false")), CommonOptions.NoRestoreOption(), CommonOptions.VerbosityOption());
public static Command Run() => Create.Command( "run", LocalizableStrings.AppFullName, treatUnmatchedTokensAsErrors: false, arguments: Accept.ZeroOrMoreArguments() .MaterializeAs(o => new RunCommand { Configuration = o.SingleArgumentOrDefault("--configuration"), Framework = o.SingleArgumentOrDefault("--framework"), NoBuild = o.HasOption("--no-build"), Project = o.SingleArgumentOrDefault("--project"), Args = o.Arguments }), options: new[] { CommonOptions.HelpOption(), CommonOptions.ConfigurationOption(), CommonOptions.FrameworkOption(), Create.Option( "-p|--project", LocalizableStrings.CommandOptionProjectDescription, Accept.ExactlyOneArgument()), Create.Option( "--no-build", LocalizableStrings.CommandOptionNoBuildDescription, Accept.NoArguments()) });
public void HasAlias_accepts_unprefixed_long_value() { var option = new Option( new[] { "-o", "--option" }, "", Accept.NoArguments()); option.HasAlias("option").Should().BeTrue(); }
public static Command Install() { return(Create.Command( "install", "", Accept.NoArguments(), CommonOptions.HelpOption(), InstallToolCommandParser.InstallTool())); }
public static Option InteractiveRestoreOption() { return(Create.Option( "--interactive", CommonLocalizableStrings.CommandInteractiveOptionDescription, Accept.NoArguments() .ForwardAs(Constants.RestoreInteractiveOption))); }
public static Command Install() { return(Create.Command( "install", LocalizableStrings.CommandDescription, Accept.NoArguments(), CommonOptions.HelpOption(), InstallToolCommandParser.InstallTool())); }
public static Command CreateCommand() { return(Create.Command( "build-server", LocalizableStrings.CommandDescription, Accept.NoArguments(), CommonOptions.HelpOption(), ServerShutdownCommandParser.CreateCommand())); }
public void It_is_not_necessary_to_specify_a_prefix_when_adding_an_option() { var option = new Option( new[] { "o" }, "", Accept.NoArguments()); option.HasAlias("o").Should().BeTrue(); option.HasAlias("-o").Should().BeTrue(); }
public static Command Update() { return(Create.Command( "update", Tools.Update.LocalizableStrings.CommandDescription, Accept.NoArguments(), CommonOptions.HelpOption(), UpdateToolCommandParser.Update())); }
private static Option[] ImplicitRestoreOptions(bool showHelp = false, bool useShortOptions = false) { return(new Option[] { Create.Option( useShortOptions ? "-s|--source" : "--source", showHelp ? LocalizableStrings.CmdSourceOptionDescription : string.Empty, Accept.OneOrMoreArguments() .With(name: LocalizableStrings.CmdSourceOption) .ForwardAsSingle(o => $"-property:RestoreSources={string.Join("%3B", o.Arguments)}")), Create.Option( useShortOptions ? "-r|--runtime" : "--runtime", LocalizableStrings.CmdRuntimeOptionDescription, Accept.OneOrMoreArguments() .WithSuggestionsFrom(_ => Suggest.RunTimesFromProjectFile()) .With(name: LocalizableStrings.CmdRuntimeOption) .ForwardAsSingle(o => $"-property:RuntimeIdentifiers={string.Join("%3B", o.Arguments)}")), CommonOptions.CurrentRuntimeOption(LocalizableStrings.CmdCurrentRuntimeOptionDescription), Create.Option( "--packages", showHelp ? LocalizableStrings.CmdPackagesOptionDescription : string.Empty, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.CmdPackagesOption) .ForwardAsSingle(o => $"-property:RestorePackagesPath={CommandDirectoryContext.GetFullPath(o.Arguments.Single())}")), Create.Option( "--disable-parallel", showHelp ? LocalizableStrings.CmdDisableParallelOptionDescription : string.Empty, Accept.NoArguments() .ForwardAs("-property:RestoreDisableParallel=true")), Create.Option( "--configfile", showHelp ? LocalizableStrings.CmdConfigFileOptionDescription : string.Empty, Accept.ExactlyOneArgument() .With(name: LocalizableStrings.CmdConfigFileOption) .ForwardAsSingle(o => $"-property:RestoreConfigFile={CommandDirectoryContext.GetFullPath(o.Arguments.Single())}")), Create.Option( "--no-cache", showHelp ? LocalizableStrings.CmdNoCacheOptionDescription : string.Empty, Accept.NoArguments() .ForwardAs("-property:RestoreNoCache=true")), Create.Option( "--ignore-failed-sources", showHelp ? LocalizableStrings.CmdIgnoreFailedSourcesOptionDescription : string.Empty, Accept.NoArguments() .ForwardAs("-property:RestoreIgnoreFailedSources=true")), Create.Option( "--no-dependencies", LocalizableStrings.CmdNoDependenciesOptionDescription, Accept.NoArguments() .ForwardAs("-property:RestoreRecursive=false")), Create.Option( useShortOptions ? "-f|--force" : "--force", LocalizableStrings.CmdForceRestoreOptionDescription, Accept.NoArguments() .ForwardAs("-property:RestoreForce=true")) }); }
public void By_default_an_option_without_arguments_materializes_as_true_when_it_is_applied() { var command = Command("something", "", Accept.NoArguments(), Option("-x", "")); var result = command.Parse("something -x"); result["something"]["x"].Value <bool>().Should().BeTrue(); }
public void An_option_must_have_at_least_one_alias() { Action create = () => new Option(Array.Empty <string>(), "", Accept.NoArguments()); create.ShouldThrow <ArgumentException>() .Which .Message .Should() .Be("An option must have at least one alias."); }
// Final parser for when there is no template name provided. // Unmatched args are errors. public static Command CreateNewCommandForNoTemplateName(string commandName) { Option[] combinedArgs = ArrayExtensions.CombineArrays(NewCommandVisibleArgs, NewCommandHiddenArgs, DebuggingCommandArgs); return(Create.Command(commandName, LocalizableStrings.CommandDescription, Accept.NoArguments(), true, combinedArgs)); }
public void An_option_cannot_have_an_alias_consisting_entirely_of_whitespace() { Action create = () => new Option(new[] { " \t" }, "", Accept.NoArguments()); create.ShouldThrow <ArgumentException>() .Which .Message .Should() .Be("An option alias cannot be null, empty, or consist entirely of whitespace."); }
public static Command SlnAdd() => Create.Command("add", LocalizableStrings.AddAppFullName, Accept.OneOrMoreArguments(o => CommonLocalizableStrings.SpecifyAtLeastOneProjectToAdd) .With(name: LocalizableStrings.AddProjectPathArgumentName, description: LocalizableStrings.AddProjectPathArgumentDescription), Create.Option( "--in-root", LocalizableStrings.InRoot, Accept.NoArguments()), CommonOptions.HelpOption());
public static Command ListTool() { return(Create.Command( "tool", LocalizableStrings.CommandDescription, Create.Option( "-g|--global", LocalizableStrings.GlobalOptionDescription, Accept.NoArguments()), CommonOptions.HelpOption())); }
public static Command Tool() { return(Create.Command( "tool", LocalizableStrings.CommandDescription, Accept.NoArguments(), CommonOptions.HelpOption(), ToolInstallCommandParser.ToolInstall(), ToolUninstallCommandParser.ToolUninstall(), ToolUpdateCommandParser.ToolUpdate(), ToolListCommandParser.ToolList())); }