From e3462af83061a3ab6b844e8728571c1d2cfcfecb Mon Sep 17 00:00:00 2001 From: Ilja Nosik Date: Thu, 12 Mar 2015 19:44:59 +0100 Subject: [PATCH 1/3] Changing the type of AssemblyMetadata Change 'string list' in favor of '(string * string) list' --- src/app/FakeLib/AssemblyInfoHelper.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/FakeLib/AssemblyInfoHelper.fs b/src/app/FakeLib/AssemblyInfoHelper.fs index 7410923404b..6bcd6d8adb9 100644 --- a/src/app/FakeLib/AssemblyInfoHelper.fs +++ b/src/app/FakeLib/AssemblyInfoHelper.fs @@ -207,7 +207,7 @@ type AssemblyInfoReplacementParams = AssemblyFileVersion : string AssemblyInformationalVersion : string AssemblyConfiguration : string - AssemblyMetadata : string list } + AssemblyMetadata : (string * string) list } /// AssemblyInfoReplacement default params let AssemblyInfoReplacementDefaults = From a6953d5513acd95c087dd8aecce54fdb1306b051 Mon Sep 17 00:00:00 2001 From: Ilja Nosik Date: Thu, 12 Mar 2015 20:01:18 +0100 Subject: [PATCH 2/3] Adding replaceMetadataAttribute function replaceAttribute doesn't handle AssemblyMetadata very well, it needs a more sophisticated function. --- src/app/FakeLib/AssemblyInfoHelper.fs | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/app/FakeLib/AssemblyInfoHelper.fs b/src/app/FakeLib/AssemblyInfoHelper.fs index 6bcd6d8adb9..8a5c399804e 100644 --- a/src/app/FakeLib/AssemblyInfoHelper.fs +++ b/src/app/FakeLib/AssemblyInfoHelper.fs @@ -224,10 +224,21 @@ let ReplaceAssemblyInfoVersions param = let replaceAttribute attributeName value line = if isNullOrEmpty value then line else regex_replace (sprintf "%s\\s*[(][^)]*[)]" attributeName) (sprintf "%s(\"%s\")" attributeName value) line - - let metadaData = - if parameters.AssemblyMetadata = [] then "" else - (String.Join("\", \"", parameters.AssemblyMetadata)) + + let rec replaceMetadataAttribute metadata line = + let replaceMetadataAttribute' key value line = + if isNullOrEmpty key then line + else + regex_replace + (sprintf "AssemblyMetadata\\s*\\(\\s*\"%s\"\\s*,[^)]*\\)" key) + (sprintf "AssemblyMetadata(\"%s\", \"%s\")" key value) + line + match metadata with + | (key, value) :: rest -> + line + |> replaceMetadataAttribute' key value + |> replaceMetadataAttribute rest + | _ -> line let replaceLine line = line @@ -235,7 +246,7 @@ let ReplaceAssemblyInfoVersions param = |> replaceAttribute "AssemblyConfiguration" parameters.AssemblyConfiguration |> replaceAttribute "AssemblyFileVersion" parameters.AssemblyFileVersion |> replaceAttribute "AssemblyInformationalVersion" parameters.AssemblyInformationalVersion - |> replaceAttribute "AssemblyMetadata" metadaData + |> replaceMetadataAttribute parameters.AssemblyMetadata ReadFile parameters.OutputFileName |> Seq.map replaceLine From 222d4a9d6e46d4f68b2329dee1d00ce7f4e1968c Mon Sep 17 00:00:00 2001 From: Ilja Nosik Date: Fri, 13 Mar 2015 12:38:42 +0100 Subject: [PATCH 3/3] Changing function names --- src/app/FakeLib/AssemblyInfoHelper.fs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/app/FakeLib/AssemblyInfoHelper.fs b/src/app/FakeLib/AssemblyInfoHelper.fs index 8a5c399804e..fbc51dd780c 100644 --- a/src/app/FakeLib/AssemblyInfoHelper.fs +++ b/src/app/FakeLib/AssemblyInfoHelper.fs @@ -225,8 +225,8 @@ let ReplaceAssemblyInfoVersions param = if isNullOrEmpty value then line else regex_replace (sprintf "%s\\s*[(][^)]*[)]" attributeName) (sprintf "%s(\"%s\")" attributeName value) line - let rec replaceMetadataAttribute metadata line = - let replaceMetadataAttribute' key value line = + let rec replaceMetadataAttributes metadata line = + let replaceSingleMetadataAttribute key value line = if isNullOrEmpty key then line else regex_replace @@ -236,8 +236,8 @@ let ReplaceAssemblyInfoVersions param = match metadata with | (key, value) :: rest -> line - |> replaceMetadataAttribute' key value - |> replaceMetadataAttribute rest + |> replaceSingleMetadataAttribute key value + |> replaceMetadataAttributes rest | _ -> line let replaceLine line = @@ -246,7 +246,7 @@ let ReplaceAssemblyInfoVersions param = |> replaceAttribute "AssemblyConfiguration" parameters.AssemblyConfiguration |> replaceAttribute "AssemblyFileVersion" parameters.AssemblyFileVersion |> replaceAttribute "AssemblyInformationalVersion" parameters.AssemblyInformationalVersion - |> replaceMetadataAttribute parameters.AssemblyMetadata + |> replaceMetadataAttributes parameters.AssemblyMetadata ReadFile parameters.OutputFileName |> Seq.map replaceLine