dotnet-installer/src/dotnet/commands/dotnet-cache/CacheCommandParser.cs

66 lines
3.1 KiB
C#
Raw Normal View History

2017-03-09 16:12:08 -08:00
// 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 System.Linq;
using Microsoft.DotNet.Cli.CommandLine;
2017-03-09 16:17:15 -08:00
using LocalizableStrings = Microsoft.DotNet.Tools.Cache.LocalizableStrings;
2017-03-09 16:12:08 -08:00
namespace Microsoft.DotNet.Cli
{
internal static class CacheCommandParser
{
public static Command Cache() =>
Create.Command(
2017-03-09 17:20:00 -08:00
"cache",
2017-03-09 16:12:08 -08:00
LocalizableStrings.AppDescription,
Accept.ZeroOrMoreArguments,
CommonOptions.HelpOption(),
Create.Option(
"-e|--entries",
LocalizableStrings.ProjectEntryDescription,
Accept.OneOrMoreArguments
2017-03-09 16:12:08 -08:00
.With(name: LocalizableStrings.ProjectEntries)
.ForwardAs(o =>
{
var materializedString = $"{o.Arguments.First()}";
if (o.Arguments.Count() == 1) return materializedString;
var additionalProjects = string.Join("%3B", o.Arguments.Skip(1));
return $"{materializedString} /p:AdditionalProjects={additionalProjects}";
}),
2017-03-09 16:12:08 -08:00
CommonOptions.FrameworkOption(),
Create.Option(
"--framework-version",
LocalizableStrings.FrameworkVersionOptionDescription,
Accept.ExactlyOneArgument
.With(name: LocalizableStrings.FrameworkVersionOption)
.ForwardAs(o => $"/p:FX_Version={o.Arguments.Single()}")),
CommonOptions.RuntimeOption(),
CommonOptions.ConfigurationOption(),
Create.Option(
"-o|--output",
LocalizableStrings.OutputOptionDescription,
Accept.ExactlyOneArgument
.With(name: LocalizableStrings.OutputOption)
.ForwardAs(o => $"/p:ComposeDir={o.Arguments.Single()}")),
Create.Option(
2017-03-09 17:20:00 -08:00
"-w|--working-dir",
2017-03-09 16:12:08 -08:00
LocalizableStrings.IntermediateWorkingDirOptionDescription,
Accept.ExactlyOneArgument
.With(name: LocalizableStrings.IntermediateWorkingDirOption)
.ForwardAs(o => $"/p:ComposeWorkingDir={o.Arguments.Single()}")),
Create.Option(
"--preserve-working-dir",
LocalizableStrings.PreserveIntermediateWorkingDirOptionDescription,
Accept.NoArguments
.ForwardAs(o => $"/p:PreserveComposeWorkingDir=true")),
Create.Option(
"--skip-optimization",
LocalizableStrings.SkipOptimizationOptionDescription,
Accept.NoArguments
.ForwardAs("/p:SkipOptimization=true")),
CommonOptions.VerbosityOption());
}
}