Fix argument parsing for fast build

This commit is contained in:
Victor Hurdugaci 2015-06-15 15:11:13 -07:00
parent f377542e38
commit 00b2daa068
3 changed files with 36 additions and 15 deletions

View File

@ -297,5 +297,5 @@ macro name="DnuPack" projectFile='string' kpmPackOutputDir='string' configuratio
macro name="DeleteFolder" delete='string' macro name="DeleteFolder" delete='string'
directory directory
macro name="CopyFolder" sourceDir='string' outputDir='string' macro name="CopyFolder" sourceDir='string' outputDir='string' overwrite='bool'
copy copy

View File

@ -16,12 +16,22 @@ default build_options='${E("NUGET3_build_options")}'
@{ @{
if (IsBuildV2) if (IsBuildV2)
{ {
var projectFolders = projectFile.Split((char)';') var projectsToPack = new List<string>();
.SelectMany(pattern => Files.Include(pattern + "/project.json"))
.Select(proj => Path.GetDirectoryName(proj)) foreach(var arg in projectFile.Split((char)';'))
.ToList(); {
if (!arg.Contains("*"))
{
projectsToPack.Add(Path.GetDirectoryName(arg));
}
else
{
var projectFolders = Files.Include(arg + "/project.json").Select(proj => Path.GetDirectoryName(proj));
projectsToPack.AddRange(projectFolders);
}
}
foreach(var projFolder in projectFolders) foreach(var projFolder in projectsToPack)
{ {
DeleteFolder(Path.Combine(projFolder, "bin", configuration)); DeleteFolder(Path.Combine(projFolder, "bin", configuration));
} }

View File

@ -19,12 +19,22 @@ default pack_options='${E("NUGET3_pack_options")}'
@{ @{
if (IsBuildV2) if (IsBuildV2)
{ {
var projectFolders = projectFile.Split((char)';') var projectsToPack = new List<string>();
.SelectMany(pattern => Files.Include(pattern + "/project.json"))
.Select(proj => Path.GetDirectoryName(proj)) foreach(var arg in projectFile.Split((char)';'))
.ToList(); {
if (!arg.Contains("*"))
foreach(var projFolder in projectFolders) {
projectsToPack.Add(Path.GetDirectoryName(arg));
}
else
{
var projectFolders = Files.Include(arg + "/project.json").Select(proj => Path.GetDirectoryName(proj));
projectsToPack.AddRange(projectFolders);
}
}
foreach(var projFolder in projectsToPack)
{ {
DeleteFolder(Path.Combine(projFolder, "bin", configuration)); DeleteFolder(Path.Combine(projFolder, "bin", configuration));
} }
@ -40,11 +50,12 @@ default pack_options='${E("NUGET3_pack_options")}'
Exec("dnu", dnuArgs); Exec("dnu", dnuArgs);
} }
foreach(var projFolder in projectFolders) foreach(var projFolder in projectsToPack)
{ {
CopyFolder( CopyFolder(
Path.Combine(projFolder, "bin", configuration), Path.Combine(projFolder, "bin", configuration),
Path.Combine(kpmPackOutputDir, Path.GetFileName(projFolder))); Path.Combine(kpmPackOutputDir, Path.GetFileName(projFolder)),
true);
} }
} }
else else
@ -65,6 +76,6 @@ default pack_options='${E("NUGET3_pack_options")}'
Exec("dnu", dnuArgs); Exec("dnu", dnuArgs);
} }
CopyFolder(projectBin, Path.Combine(kpmPackOutputDir, projectName)); CopyFolder(projectBin, Path.Combine(kpmPackOutputDir, projectName), true);
} }
} }