Skip to content

Commit 50d96d6

Browse files
committed
Merge pull request #694 from inosik/assemblymetadata-support
Better support for AssemblyMetadata in AssemblyInfoHelper - closes #683
2 parents 3189782 + 222d4a9 commit 50d96d6

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

src/app/FakeLib/AssemblyInfoHelper.fs

+17-6
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ type AssemblyInfoReplacementParams =
207207
AssemblyFileVersion : string
208208
AssemblyInformationalVersion : string
209209
AssemblyConfiguration : string
210-
AssemblyMetadata : string list }
210+
AssemblyMetadata : (string * string) list }
211211

212212
/// AssemblyInfoReplacement default params
213213
let AssemblyInfoReplacementDefaults =
@@ -224,18 +224,29 @@ let ReplaceAssemblyInfoVersions param =
224224
let replaceAttribute attributeName value line =
225225
if isNullOrEmpty value then line
226226
else regex_replace (sprintf "%s\\s*[(][^)]*[)]" attributeName) (sprintf "%s(\"%s\")" attributeName value) line
227-
228-
let metadaData =
229-
if parameters.AssemblyMetadata = [] then "" else
230-
(String.Join("\", \"", parameters.AssemblyMetadata))
227+
228+
let rec replaceMetadataAttributes metadata line =
229+
let replaceSingleMetadataAttribute key value line =
230+
if isNullOrEmpty key then line
231+
else
232+
regex_replace
233+
(sprintf "AssemblyMetadata\\s*\\(\\s*\"%s\"\\s*,[^)]*\\)" key)
234+
(sprintf "AssemblyMetadata(\"%s\", \"%s\")" key value)
235+
line
236+
match metadata with
237+
| (key, value) :: rest ->
238+
line
239+
|> replaceSingleMetadataAttribute key value
240+
|> replaceMetadataAttributes rest
241+
| _ -> line
231242

232243
let replaceLine line =
233244
line
234245
|> replaceAttribute "AssemblyVersion" parameters.AssemblyVersion
235246
|> replaceAttribute "AssemblyConfiguration" parameters.AssemblyConfiguration
236247
|> replaceAttribute "AssemblyFileVersion" parameters.AssemblyFileVersion
237248
|> replaceAttribute "AssemblyInformationalVersion" parameters.AssemblyInformationalVersion
238-
|> replaceAttribute "AssemblyMetadata" metadaData
249+
|> replaceMetadataAttributes parameters.AssemblyMetadata
239250

240251
ReadFile parameters.OutputFileName
241252
|> Seq.map replaceLine

0 commit comments

Comments
 (0)