From 4fcabc47cc78dcbb669210f3bd3e78f5b019c790 Mon Sep 17 00:00:00 2001 From: Eric Mellino Date: Tue, 15 Mar 2016 17:01:50 -0700 Subject: [PATCH] Create combined zip/tar for framework-host-sdk and framework-host --- scripts/dotnet-cli-build/PackageTargets.cs | 42 ++++++++++++++++++++-- scripts/dotnet-cli-build/PrepareTargets.cs | 2 ++ scripts/dotnet-cli-build/Utils/Utils.cs | 10 ++++++ 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/scripts/dotnet-cli-build/PackageTargets.cs b/scripts/dotnet-cli-build/PackageTargets.cs index fdce6eedd..0284a5dc6 100644 --- a/scripts/dotnet-cli-build/PackageTargets.cs +++ b/scripts/dotnet-cli-build/PackageTargets.cs @@ -14,7 +14,9 @@ namespace Microsoft.DotNet.Cli.Build { [Target(nameof(PackageTargets.CopyCLISDKLayout), nameof(SharedFrameworkTargets.PublishSharedHost), - nameof(SharedFrameworkTargets.PublishSharedFramework))] + nameof(SharedFrameworkTargets.PublishSharedFramework), + nameof(PackageTargets.CopyCombinedFrameworkSDKHostLayout), + nameof(PackageTargets.CopyCombinedFrameworkHostLayout))] public static BuildTargetResult InitPackage(BuildTargetContext c) { Directory.CreateDirectory(Dirs.Packages); @@ -90,6 +92,39 @@ namespace Microsoft.DotNet.Cli.Build return c.Success(); } + [Target] + public static BuildTargetResult CopyCombinedFrameworkSDKHostLayout(BuildTargetContext c) + { + var combinedRoot = Path.Combine(Dirs.Output, "obj", "combined-framework-sdk-host"); + + string sdkPublishRoot = c.BuildContext.Get("CLISDKRoot"); + Utils.CopyDirectoryRecursively(sdkPublishRoot, combinedRoot); + + string sharedFrameworkPublishRoot = c.BuildContext.Get("SharedFrameworkPublishRoot"); + Utils.CopyDirectoryRecursively(sharedFrameworkPublishRoot, combinedRoot); + + string sharedHostPublishRoot = c.BuildContext.Get("SharedHostPublishRoot"); + Utils.CopyDirectoryRecursively(sharedHostPublishRoot, combinedRoot); + + c.BuildContext["CombinedFrameworkSDKHostRoot"] = combinedRoot; + return c.Success(); + } + + [Target] + public static BuildTargetResult CopyCombinedFrameworkHostLayout(BuildTargetContext c) + { + var combinedRoot = Path.Combine(Dirs.Output, "obj", "combined-framework-host"); + + string sharedFrameworkPublishRoot = c.BuildContext.Get("SharedFrameworkPublishRoot"); + Utils.CopyDirectoryRecursively(sharedFrameworkPublishRoot, combinedRoot); + + string sharedHostPublishRoot = c.BuildContext.Get("SharedHostPublishRoot"); + Utils.CopyDirectoryRecursively(sharedHostPublishRoot, combinedRoot); + + c.BuildContext["CombinedFrameworkHostRoot"] = combinedRoot; + return c.Success(); + } + [Target(nameof(PackageTargets.GenerateZip), nameof(PackageTargets.GenerateTarBall))] public static BuildTargetResult GenerateCompressedFile(BuildTargetContext c) { @@ -103,6 +138,8 @@ namespace Microsoft.DotNet.Cli.Build CreateZipFromDirectory(c.BuildContext.Get("SharedHostPublishRoot"), c.BuildContext.Get("SharedHostCompressedFile")); CreateZipFromDirectory(c.BuildContext.Get("SharedFrameworkPublishRoot"), c.BuildContext.Get("SharedFrameworkCompressedFile")); CreateZipFromDirectory(c.BuildContext.Get("CLISDKRoot"), c.BuildContext.Get("SdkCompressedFile")); + CreateZipFromDirectory(c.BuildContext.Get("CombinedFrameworkSDKHostRoot"), c.BuildContext.Get("CombinedFrameworkSDKHostCompressedFile")); + CreateZipFromDirectory(c.BuildContext.Get("CombinedFrameworkHostRoot"), c.BuildContext.Get("CombinedFrameworkHostCompressedFile")); return c.Success(); } @@ -113,7 +150,8 @@ namespace Microsoft.DotNet.Cli.Build { CreateTarBallFromDirectory(c.BuildContext.Get("SharedHostPublishRoot"), c.BuildContext.Get("SharedHostCompressedFile")); CreateTarBallFromDirectory(c.BuildContext.Get("SharedFrameworkPublishRoot"), c.BuildContext.Get("SharedFrameworkCompressedFile")); - CreateTarBallFromDirectory(c.BuildContext.Get("CLISDKRoot"), c.BuildContext.Get("SdkCompressedFile")); + CreateTarBallFromDirectory(c.BuildContext.Get("CombinedFrameworkSDKHostRoot"), c.BuildContext.Get("CombinedFrameworkSDKHostCompressedFile")); + CreateTarBallFromDirectory(c.BuildContext.Get("CombinedFrameworkHostRoot"), c.BuildContext.Get("CombinedFrameworkHostCompressedFile")); return c.Success(); } diff --git a/scripts/dotnet-cli-build/PrepareTargets.cs b/scripts/dotnet-cli-build/PrepareTargets.cs index 1c87e132f..0dcfa1538 100644 --- a/scripts/dotnet-cli-build/PrepareTargets.cs +++ b/scripts/dotnet-cli-build/PrepareTargets.cs @@ -115,6 +115,8 @@ namespace Microsoft.DotNet.Cli.Build AddInstallerArtifactToContext(c, "dotnet", "Sdk"); AddInstallerArtifactToContext(c, "dotnet-host", "SharedHost"); AddInstallerArtifactToContext(c, "dotnet-sharedframework", "SharedFramework"); + AddInstallerArtifactToContext(c, "dotnet-combined-framework-sdk-host", "CombinedFrameworkSDKHost"); + AddInstallerArtifactToContext(c, "dotnet-combined-framework-host", "CombinedFrameworkHost"); return c.Success(); } diff --git a/scripts/dotnet-cli-build/Utils/Utils.cs b/scripts/dotnet-cli-build/Utils/Utils.cs index 1f255e99e..d9dd937a0 100644 --- a/scripts/dotnet-cli-build/Utils/Utils.cs +++ b/scripts/dotnet-cli-build/Utils/Utils.cs @@ -100,5 +100,15 @@ namespace Microsoft.DotNet.Cli.Build Directory.Delete(path, true); } } + + public static void CopyDirectoryRecursively(string path, string destination) + { + foreach (var file in Directory.GetFiles(path, "*", SearchOption.AllDirectories)) + { + string destFile = file.Replace(path, destination); + Directory.CreateDirectory(Path.GetDirectoryName(destFile)); + File.Copy(file, destFile, true); + } + } } }