Private/ConvertTo-HyperVVMTagJson.ps1
|
function ConvertTo-HyperVVMTagJson { [CmdletBinding()] [OutputType([string])] param( [Parameter(Mandatory)] [HyperVVMTag] $Tag, [Parameter()] [AllowEmptyString()] [string] $ExistingNotes = '' ) $data = [ordered]@{ Environment = @($Tag.Environment) Service = @($Tag.Service) DependsOn = @($Tag.DependsOn) } $payload = $data | ConvertTo-Json -Compress -Depth 5 $tagLine = "#HVTag:$payload" # Strip any existing #HVTag: line $clean = $ExistingNotes -replace '(?m)^#HVTag:.+(\r?\n)?', '' $clean = $clean.TrimEnd() if ([string]::IsNullOrWhiteSpace($clean)) { return $tagLine } return "$clean`n`n$tagLine" } |