param($target = "C:\Dev\Github\WireMock.Net")

$header = "// Copyright © WireMock.Net
"

function Write-Header ($file) {
    $content = Get-Content $file -Raw  # Using -Raw to read the entire file as a single string
    $filename = Split-Path -Leaf $file
    
    if ($content.TrimStart().StartsWith($header.Trim())) {
        # Write-Host "Skipping existing: $filename"
    } elseif ($content.TrimStart().StartsWith("// <auto-generated>")) {
        # Write-Host "Skipping auto-generated file: $filename"
    } else {
        Write-Host "Prepend the header for file: $filename"
        Set-Content $file $header
        Add-Content $file $content -NoNewline # Writing back to the file without an extra newline
    }
}

Get-ChildItem $target -Recurse | ? { $_.Extension -like ".cs" } | % `
{
    Write-Header $_.PSPath.Split(":", 3)[2]
}