dotnet restore using new parser
This commit is contained in:
parent
0094fd4e08
commit
69bc90dc6f
5 changed files with 164 additions and 164 deletions
|
@ -6,7 +6,7 @@ using Microsoft.DotNet.Cli.CommandLine;
|
|||
using Microsoft.DotNet.Cli.Utils;
|
||||
using Microsoft.DotNet.Tools.MSBuild;
|
||||
using Microsoft.DotNet.Cli;
|
||||
using System.Diagnostics;
|
||||
using Parser = Microsoft.DotNet.Cli.Parser;
|
||||
|
||||
namespace Microsoft.DotNet.Tools.Restore
|
||||
{
|
||||
|
@ -21,133 +21,21 @@ namespace Microsoft.DotNet.Tools.Restore
|
|||
{
|
||||
DebugHelper.HandleDebugSwitch(ref args);
|
||||
|
||||
CommandLineApplication cmd = new CommandLineApplication(throwOnUnexpectedArg: false)
|
||||
var parser = Parser.DotnetCommand["restore"];
|
||||
|
||||
var result = parser.Parse(args);
|
||||
|
||||
var restore = result["restore"];
|
||||
|
||||
var msbuildArgs = new List<string>
|
||||
{
|
||||
Name = "restore",
|
||||
FullName = LocalizableStrings.AppFullName,
|
||||
Description = LocalizableStrings.AppDescription,
|
||||
HandleRemainingArguments = true,
|
||||
ArgumentSeparatorHelpText = HelpMessageStrings.MSBuildAdditionalArgsHelpText
|
||||
"/NoLogo",
|
||||
"/t:Restore",
|
||||
"/ConsoleLoggerParameters:Verbosity=Minimal"
|
||||
};
|
||||
|
||||
cmd.HelpOption("-h|--help");
|
||||
|
||||
var argRoot = cmd.Argument(
|
||||
$"[{LocalizableStrings.CmdArgument}]",
|
||||
LocalizableStrings.CmdArgumentDescription,
|
||||
multipleValues: true);
|
||||
|
||||
var sourceOption = cmd.Option(
|
||||
$"-s|--source <{LocalizableStrings.CmdSourceOption}>",
|
||||
LocalizableStrings.CmdSourceOptionDescription,
|
||||
CommandOptionType.MultipleValue);
|
||||
|
||||
var runtimeOption = cmd.Option(
|
||||
$"-r|--runtime <{LocalizableStrings.CmdRuntimeOption}>",
|
||||
LocalizableStrings.CmdRuntimeOptionDescription,
|
||||
CommandOptionType.MultipleValue);
|
||||
|
||||
var packagesOption = cmd.Option(
|
||||
$"--packages <{LocalizableStrings.CmdPackagesOption}>",
|
||||
LocalizableStrings.CmdPackagesOptionDescription,
|
||||
CommandOptionType.SingleValue);
|
||||
|
||||
var disableParallelOption = cmd.Option(
|
||||
"--disable-parallel",
|
||||
LocalizableStrings.CmdDisableParallelOptionDescription,
|
||||
CommandOptionType.NoValue);
|
||||
|
||||
var configFileOption = cmd.Option(
|
||||
$"--configfile <{LocalizableStrings.CmdConfigFileOption}>",
|
||||
LocalizableStrings.CmdConfigFileOptionDescription,
|
||||
CommandOptionType.SingleValue);
|
||||
|
||||
var noCacheOption = cmd.Option(
|
||||
"--no-cache",
|
||||
LocalizableStrings.CmdNoCacheOptionDescription,
|
||||
CommandOptionType.NoValue);
|
||||
|
||||
var ignoreFailedSourcesOption = cmd.Option(
|
||||
"--ignore-failed-sources",
|
||||
LocalizableStrings.CmdIgnoreFailedSourcesOptionDescription,
|
||||
CommandOptionType.NoValue);
|
||||
|
||||
var noDependenciesOption = cmd.Option(
|
||||
"--no-dependencies",
|
||||
LocalizableStrings.CmdNoDependenciesOptionDescription,
|
||||
CommandOptionType.NoValue);
|
||||
|
||||
CommandOption verbosityOption = MSBuildForwardingApp.AddVerbosityOption(cmd);
|
||||
|
||||
List<string> msbuildArgs = null;
|
||||
cmd.OnExecute(() =>
|
||||
{
|
||||
msbuildArgs = new List<string>()
|
||||
{
|
||||
"/NoLogo",
|
||||
"/t:Restore",
|
||||
"/ConsoleLoggerParameters:Verbosity=Minimal"
|
||||
};
|
||||
|
||||
if (sourceOption.HasValue())
|
||||
{
|
||||
msbuildArgs.Add($"/p:RestoreSources={string.Join("%3B", sourceOption.Values)}");
|
||||
}
|
||||
|
||||
if (runtimeOption.HasValue())
|
||||
{
|
||||
msbuildArgs.Add($"/p:RuntimeIdentifiers={string.Join("%3B", runtimeOption.Values)}");
|
||||
}
|
||||
|
||||
if (packagesOption.HasValue())
|
||||
{
|
||||
msbuildArgs.Add($"/p:RestorePackagesPath={packagesOption.Value()}");
|
||||
}
|
||||
|
||||
if (disableParallelOption.HasValue())
|
||||
{
|
||||
msbuildArgs.Add($"/p:RestoreDisableParallel=true");
|
||||
}
|
||||
|
||||
if (configFileOption.HasValue())
|
||||
{
|
||||
msbuildArgs.Add($"/p:RestoreConfigFile={configFileOption.Value()}");
|
||||
}
|
||||
|
||||
if (noCacheOption.HasValue())
|
||||
{
|
||||
msbuildArgs.Add($"/p:RestoreNoCache=true");
|
||||
}
|
||||
|
||||
if (ignoreFailedSourcesOption.HasValue())
|
||||
{
|
||||
msbuildArgs.Add($"/p:RestoreIgnoreFailedSources=true");
|
||||
}
|
||||
|
||||
if (noDependenciesOption.HasValue())
|
||||
{
|
||||
msbuildArgs.Add($"/p:RestoreRecursive=false");
|
||||
}
|
||||
|
||||
if (verbosityOption.HasValue())
|
||||
{
|
||||
msbuildArgs.Add($"/verbosity:{verbosityOption.Value()}");
|
||||
}
|
||||
|
||||
// Add in arguments
|
||||
msbuildArgs.AddRange(argRoot.Values);
|
||||
|
||||
// Add remaining arguments that the parser did not understand
|
||||
msbuildArgs.AddRange(cmd.RemainingArguments);
|
||||
|
||||
return 0;
|
||||
});
|
||||
|
||||
int exitCode = cmd.Execute(args);
|
||||
if (msbuildArgs == null)
|
||||
{
|
||||
throw new CommandCreationException(exitCode);
|
||||
}
|
||||
msbuildArgs.AddRange(restore.ArgsToBeForwarded());
|
||||
msbuildArgs.AddRange(restore.Arguments);
|
||||
|
||||
return new RestoreCommand(msbuildArgs, msbuildPath);
|
||||
}
|
||||
|
@ -169,4 +57,4 @@ namespace Microsoft.DotNet.Tools.Restore
|
|||
return cmd.Execute();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue