Fix unexpected failures in CopyPackagesToSplitFolders when files exists

This commit is contained in:
Nate McMaster 2017-09-20 19:08:32 -07:00
parent f87c9d9fb5
commit 6af6dde460
2 changed files with 14 additions and 13 deletions

View File

@ -39,10 +39,7 @@
<RepoTasks.DownloadNuGetPackages
Packages="@(ExternalDependency->WithMetadataValue('Mirror', 'true'))"
DestinationFolder="$(IntermediateMirrorPackageDir)">
<Output TaskParameter="Files" ItemName="MirroredPackageFile" />
</RepoTasks.DownloadNuGetPackages>
DestinationFolder="$(IntermediateMirrorPackageDir)" />
</Target>
<Target Name="CleanUniverseArtifacts">
@ -209,17 +206,14 @@
<ItemGroup>
<PackageArtifactFile Include="$(BuildDir)*.nupkg" Exclude="$(BuildDir)*.symbols.nupkg" />
<ExternalDependencyPackage Include="@(ExternalDependency->WithMetadataValue('Mirror', 'true'))" Category="mirror" />
<MirroredPackageFile Include="$(IntermediateMirrorPackageDir)*.nupkg" />
<_MirroredPackageFiles Include="$(IntermediateMirrorPackageDir)*.nupkg" />
</ItemGroup>
<RemoveDuplicates Inputs="@(MirroredPackageFile)">
<Output TaskParameter="Filtered" ItemName="_MirroredPackageFiles" />
</RemoveDuplicates>
<RepoTasks.CopyPackagesToSplitFolders
Packages="@(PackageArtifact);@(ExternalDependencyPackage)"
Files="@(PackageArtifactFile);@(_MirroredPackageFiles)"
DestinationFolder="$(ArtifactsDir)" />
DestinationFolder="$(ArtifactsDir)"
Overwrite="true" />
</Target>
<Target Name="VerifyCoherentVersions" DependsOnTargets="ResolveRepoInfo">

View File

@ -28,6 +28,8 @@ namespace RepoTasks
[Required]
public string DestinationFolder { get; set; }
public bool Overwrite { get; set; }
public override bool Execute()
{
if (Files?.Length == 0)
@ -79,9 +81,14 @@ namespace RepoTasks
var destFile = Path.Combine(destDir, Path.GetFileName(file.ItemSpec));
Log.LogMessage($"Copying {file.ItemSpec} to {destFile}");
if (!Overwrite && File.Exists(destFile))
{
Log.LogError($"File already exists in {destFile}");
continue;
}
File.Copy(file.ItemSpec, destFile);
Log.LogMessage($"Copying {file.ItemSpec} to {destFile}");
File.Copy(file.ItemSpec, destFile, Overwrite);
expectedPackages.Remove(identity.Id);
}
@ -97,7 +104,7 @@ namespace RepoTasks
return false;
}
return true;
return !Log.HasLoggedErrors;
}
}
}