58 lines
2.5 KiB
C#
58 lines
2.5 KiB
C#
using Microsoft.DotNet.PlatformAbstractions;
|
|
|
|
namespace Microsoft.DotNet.Cli.Utils
|
|
{
|
|
public class DefaultCommandResolverPolicy : ICommandResolverPolicy
|
|
{
|
|
public CompositeCommandResolver CreateCommandResolver()
|
|
{
|
|
return Create();
|
|
}
|
|
|
|
public static CompositeCommandResolver Create()
|
|
{
|
|
var environment = new EnvironmentProvider();
|
|
var packagedCommandSpecFactory = new PackagedCommandSpecFactoryWithCliRuntime();
|
|
var publishedPathCommandSpecFactory = new PublishPathCommandSpecFactory();
|
|
|
|
var platformCommandSpecFactory = default(IPlatformCommandSpecFactory);
|
|
if (RuntimeEnvironment.OperatingSystemPlatform == Platform.Windows)
|
|
{
|
|
platformCommandSpecFactory = new WindowsExePreferredCommandSpecFactory();
|
|
}
|
|
else
|
|
{
|
|
platformCommandSpecFactory = new GenericPlatformCommandSpecFactory();
|
|
}
|
|
|
|
return CreateDefaultCommandResolver(
|
|
environment,
|
|
packagedCommandSpecFactory,
|
|
platformCommandSpecFactory,
|
|
publishedPathCommandSpecFactory);
|
|
}
|
|
|
|
public static CompositeCommandResolver CreateDefaultCommandResolver(
|
|
IEnvironmentProvider environment,
|
|
IPackagedCommandSpecFactory packagedCommandSpecFactory,
|
|
IPlatformCommandSpecFactory platformCommandSpecFactory,
|
|
IPublishedPathCommandSpecFactory publishedPathCommandSpecFactory)
|
|
{
|
|
var compositeCommandResolver = new CompositeCommandResolver();
|
|
|
|
compositeCommandResolver.AddCommandResolver(new MuxerCommandResolver());
|
|
compositeCommandResolver.AddCommandResolver(new RootedCommandResolver());
|
|
compositeCommandResolver.AddCommandResolver(
|
|
new ProjectToolsCommandResolver(packagedCommandSpecFactory, environment));
|
|
compositeCommandResolver.AddCommandResolver(new AppBaseDllCommandResolver());
|
|
compositeCommandResolver.AddCommandResolver(
|
|
new AppBaseCommandResolver(environment, platformCommandSpecFactory));
|
|
compositeCommandResolver.AddCommandResolver(
|
|
new PathCommandResolver(environment, platformCommandSpecFactory));
|
|
compositeCommandResolver.AddCommandResolver(
|
|
new PublishedPathCommandResolver(environment, publishedPathCommandSpecFactory));
|
|
|
|
return compositeCommandResolver;
|
|
}
|
|
}
|
|
}
|