dotnet-installer/src/dotnet/commands/dotnet-restore/RestoreCommandParser.cs
2017-03-07 11:28:35 -08:00

63 lines
No EOL
2.9 KiB
C#

// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using Microsoft.DotNet.Cli.CommandLine;
namespace Microsoft.DotNet.Cli
{
internal static class RestoreCommandParser
{
public static Command Restore() =>
Create.Command(
"restore",
".NET dependency restorer",
Accept.ExactlyOneArgument,
CommonOptions.HelpOption(),
Create.Option(
"-s|--source",
"Specifies a NuGet package source to use during the restore.",
Accept.OneOrMoreArguments
.With(name: "SOURCE")
.ForwardAs(o => $"/p:RestoreSources={string.Join("%3B", o.Arguments)}")),
Create.Option(
"-r|--runtime",
"Target runtime to restore packages for.",
Accept.OneOrMoreArguments
.WithSuggestionsFrom(_ => Suggest.RunTimesFromProjectFile())
.With(name: "RUNTIME_IDENTIFIER")
.ForwardAs(o => $"/p:RuntimeIdentifiers={string.Join("%3B", o.Arguments)}")),
Create.Option(
"--packages",
"Directory to install packages in.",
Accept.ExactlyOneArgument
.With(name: "PACKAGES_DIRECTORY")
.ForwardAs("/p:RestorePackagesPath={0}")),
Create.Option(
"--disable-parallel",
"Disables restoring multiple projects in parallel.",
Accept.NoArguments
.ForwardAs("/p:RestoreDisableParallel=true")),
Create.Option(
"--configfile",
"The NuGet configuration file to use.",
Accept.ExactlyOneArgument
.With(name: "FILE")
.ForwardAs("/p:RestoreConfigFile={0}")),
Create.Option(
"--no-cache",
"Do not cache packages and http requests.",
Accept.NoArguments
.ForwardAs("/p:RestoreNoCache=true")),
Create.Option(
"--ignore-failed-sources",
"Treat package source failures as warnings.",
Accept.NoArguments
.ForwardAs("/p:RestoreIgnoreFailedSources=true")),
Create.Option(
"--no-dependencies",
"Set this flag to ignore project to project references and only restore the root project",
Accept.NoArguments
.ForwardAs("/p:RestoreRecursive=false")),
CommonOptions.VerbosityOption());
}
}