Allow directories as project arguments to run command.

This commit is contained in:
dasMulli 2017-03-24 06:44:53 +01:00
parent 485237a8a0
commit a4cb3fdf81
No known key found for this signature in database
GPG key ID: 18CD0491A7182D5F
2 changed files with 42 additions and 15 deletions

View file

@ -134,21 +134,12 @@ namespace Microsoft.DotNet.Tools.Run
{
if (string.IsNullOrWhiteSpace(Project))
{
string directory = Directory.GetCurrentDirectory();
string[] projectFiles = Directory.GetFiles(directory, "*.*proj");
if (projectFiles.Length == 0)
{
var project = "--project";
throw new GracefulException(LocalizableStrings.RunCommandExceptionNoProjects, directory, project);
}
else if (projectFiles.Length > 1)
{
throw new GracefulException(LocalizableStrings.RunCommandExceptionMultipleProjects, directory);
}
Project = projectFiles[0];
Project = Directory.GetCurrentDirectory();
}
if (Directory.Exists(Project))
{
Project = FindSingleProjectInDirectory(Project);
}
if (Args == null)
@ -160,5 +151,23 @@ namespace Microsoft.DotNet.Tools.Run
_args = new List<string>(Args);
}
}
private static string FindSingleProjectInDirectory(string directory)
{
string[] projectFiles = Directory.GetFiles(directory, "*.*proj");
if (projectFiles.Length == 0)
{
var project = "--project";
throw new GracefulException(LocalizableStrings.RunCommandExceptionNoProjects, directory, project);
}
else if (projectFiles.Length > 1)
{
throw new GracefulException(LocalizableStrings.RunCommandExceptionMultipleProjects, directory);
}
return projectFiles[0];
}
}
}