From 6a6089bc32782fe7e4ae3ca25f66aba4a4857b5d Mon Sep 17 00:00:00 2001 From: Mattias Karlsson Date: Fri, 28 Jul 2017 17:28:28 +0200 Subject: [PATCH] (GH-1699) Add Language to NuGetPackSettings * fixes #1699 --- .../Properties/Resources.resx | 60 ++++++++++--------- .../Unit/Tools/NuGet/Pack/NuGetPackerTests.cs | 7 +++ .../Tools/NuGet/Pack/NuGetPackSettings.cs | 6 ++ .../Tools/NuGet/Pack/NuspecTransformer.cs | 3 +- 4 files changed, 48 insertions(+), 28 deletions(-) diff --git a/src/Cake.Common.Tests/Properties/Resources.resx b/src/Cake.Common.Tests/Properties/Resources.resx index 4ee6ffba79..37a9531a73 100644 --- a/src/Cake.Common.Tests/Properties/Resources.resx +++ b/src/Cake.Common.Tests/Properties/Resources.resx @@ -1,17 +1,17 @@  - @@ -301,6 +301,7 @@ Line #3]]></releaseNotes> Line #2 Line #3]]></releaseNotes> <tags>Tag1 Tag2 Tag3</tags> + <language>en-us</language> </metadata> <files> <file src="Cake.Core.dll" target="lib/net45" /> @@ -331,6 +332,7 @@ Line #3]]></releaseNotes> Line #2 Line #3]]></releaseNotes> <tags>Tag1 Tag2 Tag3</tags> + <language>en-us</language> <dependencies> <dependency id="Test1" version="1.0.0" /> <dependency id="Test2" version="[1.0.0]" /> @@ -365,6 +367,7 @@ Line #3]]></releaseNotes> Line #2 Line #3]]></releaseNotes> <tags>Tag1 Tag2 Tag3</tags> + <language>en-us</language> </metadata> <files> <file src="Cake.Core.dll" target="lib/net45" /> @@ -395,6 +398,7 @@ Line #3]]></releaseNotes> Line #2 Line #3]]></releaseNotes> <tags>Tag1 Tag2 Tag3</tags> + <language>en-us</language> <dependencies> <dependency id="Test1" version="1.0.0" /> <dependency id="Test2" version="[1.0.0]" /> @@ -923,6 +927,7 @@ EndGlobal Line #2 Line #3]]></releaseNotes> <tags>Tag1 Tag2 Tag3</tags> + <language>en-us</language> <dependencies> <group targetFramework="net452"> <dependency id="Test1" version="1.0.0" /> @@ -961,6 +966,7 @@ Line #3]]></releaseNotes> Line #2 Line #3]]></releaseNotes> <tags>Tag1 Tag2 Tag3</tags> + <language>en-us</language> <dependencies> <group targetFramework="net452"> <dependency id="Test1" version="1.0.0" /> diff --git a/src/Cake.Common.Tests/Unit/Tools/NuGet/Pack/NuGetPackerTests.cs b/src/Cake.Common.Tests/Unit/Tools/NuGet/Pack/NuGetPackerTests.cs index 09e1ab43b1..fc37120b7d 100644 --- a/src/Cake.Common.Tests/Unit/Tools/NuGet/Pack/NuGetPackerTests.cs +++ b/src/Cake.Common.Tests/Unit/Tools/NuGet/Pack/NuGetPackerTests.cs @@ -305,6 +305,7 @@ public void Should_Add_Metadata_Element_To_Nuspec_If_Missing() fixture.Settings.Copyright = "The copyright"; fixture.Settings.ReleaseNotes = new[] { "Line #1", "Line #2", "Line #3" }; fixture.Settings.Tags = new[] { "Tag1", "Tag2", "Tag3" }; + fixture.Settings.Language = "en-us"; // When var result = fixture.Run(); @@ -336,6 +337,7 @@ public void Should_Replace_Template_Tokens_In_Nuspec() fixture.Settings.Copyright = "The copyright"; fixture.Settings.ReleaseNotes = new[] { "Line #1", "Line #2", "Line #3" }; fixture.Settings.Tags = new[] { "Tag1", "Tag2", "Tag3" }; + fixture.Settings.Language = "en-us"; // When var result = fixture.Run(); @@ -368,6 +370,7 @@ public void Should_Replace_Template_Tokens_In_Nuspec_Without_Namespaces() fixture.Settings.Copyright = "The copyright"; fixture.Settings.ReleaseNotes = new[] { "Line #1", "Line #2", "Line #3" }; fixture.Settings.Tags = new[] { "Tag1", "Tag2", "Tag3" }; + fixture.Settings.Language = "en-us"; // When var result = fixture.Run(); @@ -399,6 +402,7 @@ public void Should_Replace_Template_Tokens_In_Nuspec_With_Files() fixture.Settings.Copyright = "The copyright"; fixture.Settings.ReleaseNotes = new[] { "Line #1", "Line #2", "Line #3" }; fixture.Settings.Tags = new[] { "Tag1", "Tag2", "Tag3" }; + fixture.Settings.Language = "en-us"; fixture.Settings.Files = new[] { new NuSpecContent { Source = "Cake.Core.dll", Target = "lib/net45" }, @@ -443,6 +447,7 @@ public void Should_Replace_Template_Tokens_In_Nuspec_With_Files_Without_Namespac fixture.Settings.Copyright = "The copyright"; fixture.Settings.ReleaseNotes = new[] { "Line #1", "Line #2", "Line #3" }; fixture.Settings.Tags = new[] { "Tag1", "Tag2", "Tag3" }; + fixture.Settings.Language = "en-us"; fixture.Settings.Files = new[] { new NuSpecContent { Source = "Cake.Core.dll", Target = "lib/net45" }, @@ -519,6 +524,7 @@ public void Should_Replace_Template_Tokens_In_Nuspec_With_Files_And_DependencyTa fixture.Settings.Copyright = "The copyright"; fixture.Settings.ReleaseNotes = new[] { "Line #1", "Line #2", "Line #3" }; fixture.Settings.Tags = new[] { "Tag1", "Tag2", "Tag3" }; + fixture.Settings.Language = "en-us"; fixture.Settings.Files = new[] { new NuSpecContent { Source = "Cake.Core.dll", Target = "lib/net45" }, @@ -563,6 +569,7 @@ public void Should_Replace_Template_Tokens_In_Nuspec_With_Files_And_DependencyTa fixture.Settings.Copyright = "The copyright"; fixture.Settings.ReleaseNotes = new[] { "Line #1", "Line #2", "Line #3" }; fixture.Settings.Tags = new[] { "Tag1", "Tag2", "Tag3" }; + fixture.Settings.Language = "en-us"; fixture.Settings.Files = new[] { new NuSpecContent { Source = "Cake.Core.dll", Target = "lib/net45" }, diff --git a/src/Cake.Common/Tools/NuGet/Pack/NuGetPackSettings.cs b/src/Cake.Common/Tools/NuGet/Pack/NuGetPackSettings.cs index af09b25434..ac8dd45597 100644 --- a/src/Cake.Common/Tools/NuGet/Pack/NuGetPackSettings.cs +++ b/src/Cake.Common/Tools/NuGet/Pack/NuGetPackSettings.cs @@ -189,5 +189,11 @@ public sealed class NuGetPackSettings : ToolSettings /// true if the temporarily autogenerated NuSpec file should be kept; otherwise false. /// public bool KeepTemporaryNuSpecFile { get; set; } + + /// + /// Gets or sets the package language. + /// + /// The package language. + public string Language { get; set; } } } \ No newline at end of file diff --git a/src/Cake.Common/Tools/NuGet/Pack/NuspecTransformer.cs b/src/Cake.Common/Tools/NuGet/Pack/NuspecTransformer.cs index d5db8c2c09..c0a5a3661a 100644 --- a/src/Cake.Common/Tools/NuGet/Pack/NuspecTransformer.cs +++ b/src/Cake.Common/Tools/NuGet/Pack/NuspecTransformer.cs @@ -36,7 +36,8 @@ static NuspecTransformer() { "requireLicenseAcceptance", settings => ToString(settings.RequireLicenseAcceptance) }, { "copyright", settings => ToString(settings.Copyright) }, { "releaseNotes", settings => ToMultiLineString(settings.ReleaseNotes) }, - { "tags", settings => ToSpaceSeparatedString(settings.Tags) } + { "tags", settings => ToSpaceSeparatedString(settings.Tags) }, + { "language", settings => ToString(settings.Language) } }; _cdataElements = new List { "releaseNotes" };