2016-04-28 23:30:32 +00:00
|
|
|
using Microsoft.DotNet.InternalAbstractions;
|
2016-02-25 00:05:55 +00:00
|
|
|
|
|
|
|
namespace Microsoft.DotNet.Cli.Utils
|
|
|
|
{
|
2016-03-07 19:50:52 +00:00
|
|
|
public class DefaultCommandResolverPolicy
|
2016-02-25 00:05:55 +00:00
|
|
|
{
|
2016-03-07 19:50:52 +00:00
|
|
|
public static CompositeCommandResolver Create()
|
2016-02-25 00:05:55 +00:00
|
|
|
{
|
|
|
|
var environment = new EnvironmentProvider();
|
|
|
|
var packagedCommandSpecFactory = new PackagedCommandSpecFactory();
|
|
|
|
|
|
|
|
var platformCommandSpecFactory = default(IPlatformCommandSpecFactory);
|
2016-04-28 23:30:32 +00:00
|
|
|
if (RuntimeEnvironment.OperatingSystemPlatform == Platform.Windows)
|
2016-02-25 00:05:55 +00:00
|
|
|
{
|
|
|
|
platformCommandSpecFactory = new WindowsExePreferredCommandSpecFactory();
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
platformCommandSpecFactory = new GenericPlatformCommandSpecFactory();
|
|
|
|
}
|
|
|
|
|
2016-03-07 19:50:52 +00:00
|
|
|
return CreateDefaultCommandResolver(environment, packagedCommandSpecFactory, platformCommandSpecFactory);
|
2016-02-25 00:05:55 +00:00
|
|
|
}
|
|
|
|
|
2016-03-07 19:50:52 +00:00
|
|
|
public static CompositeCommandResolver CreateDefaultCommandResolver(
|
2016-02-25 00:05:55 +00:00
|
|
|
IEnvironmentProvider environment,
|
|
|
|
IPackagedCommandSpecFactory packagedCommandSpecFactory,
|
2016-03-07 19:50:52 +00:00
|
|
|
IPlatformCommandSpecFactory platformCommandSpecFactory)
|
2016-02-25 00:05:55 +00:00
|
|
|
{
|
2016-03-07 19:50:52 +00:00
|
|
|
var compositeCommandResolver = new CompositeCommandResolver();
|
|
|
|
|
2016-03-24 16:36:05 +00:00
|
|
|
compositeCommandResolver.AddCommandResolver(new MuxerCommandResolver());
|
2016-03-07 19:50:52 +00:00
|
|
|
compositeCommandResolver.AddCommandResolver(new RootedCommandResolver());
|
|
|
|
compositeCommandResolver.AddCommandResolver(new ProjectToolsCommandResolver(packagedCommandSpecFactory));
|
2016-03-24 16:36:05 +00:00
|
|
|
compositeCommandResolver.AddCommandResolver(new AppBaseDllCommandResolver());
|
2016-03-07 19:50:52 +00:00
|
|
|
compositeCommandResolver.AddCommandResolver(new AppBaseCommandResolver(environment, platformCommandSpecFactory));
|
|
|
|
compositeCommandResolver.AddCommandResolver(new PathCommandResolver(environment, platformCommandSpecFactory));
|
2016-03-24 16:36:05 +00:00
|
|
|
|
2016-03-07 19:50:52 +00:00
|
|
|
return compositeCommandResolver;
|
2016-02-25 00:05:55 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|