build/build.ps1: Fixed whitespace
diff --git a/build/build.ps1 b/build/build.ps1
index c524047..bd6fcf2 100644
--- a/build/build.ps1
+++ b/build/build.ps1
@@ -18,418 +18,418 @@
 # -----------------------------------------------------------------------------------
 
 properties {
-	[string]$base_directory   = Resolve-Path "../."
-	[string]$release_directory  = "$base_directory/release"
-	[string]$source_directory = "$base_directory"
-	[string]$tools_directory  = "$base_directory/lib"
-	[string]$nuget_package_directory = "$release_directory/NuGetPackages"
-	[string]$test_results_directory = "$release_directory/TestResults"
-	[string]$publish_directory = "$release_directory/Publish"
-	[string]$solutionFile = "$base_directory/Lucene.Net.sln"
-	[string]$sdkPath = "$env:programfiles/dotnet/sdk"
-	[string]$sdkVersion = "5.0.100"
-	[string]$globalJsonFile = "$base_directory/global.json"
-	[string]$versionPropsFile = "$base_directory/Version.props"
-	[string]$build_bat = "$base_directory/build.bat"
+    [string]$base_directory   = Resolve-Path "../."
+    [string]$release_directory  = "$base_directory/release"
+    [string]$source_directory = "$base_directory"
+    [string]$tools_directory  = "$base_directory/lib"
+    [string]$nuget_package_directory = "$release_directory/NuGetPackages"
+    [string]$test_results_directory = "$release_directory/TestResults"
+    [string]$publish_directory = "$release_directory/Publish"
+    [string]$solutionFile = "$base_directory/Lucene.Net.sln"
+    [string]$sdkPath = "$env:programfiles/dotnet/sdk"
+    [string]$sdkVersion = "5.0.100"
+    [string]$globalJsonFile = "$base_directory/global.json"
+    [string]$versionPropsFile = "$base_directory/Version.props"
+    [string]$build_bat = "$base_directory/build.bat"
 
-	[string]$buildCounter     = $(if ($buildCounter) { $buildCounter } else { $env:BuildCounter }) #NOTE: Pass in as a parameter (not a property) or environment variable to override
-	[string]$preReleaseCounterPattern = $(if ($preReleaseCounterPattern) { $preReleaseCounterPattern } else { if ($env:PreReleaseCounterPattern) { $env:PreReleaseCounterPattern } else { "0000000000" } })  #NOTE: Pass in as a parameter (not a property) or environment variable to override
-	[string]$versionSuffix    = $(if ($versionSuffix -ne $null) { $versionSuffix } else { if ($env:VersionSuffix -ne $null) { $env:VersionSuffix } else { 'ci' }}) #NOTE: Pass in as a parameter (not a property) or environment variable to override
-	[string]$packageVersion   = Get-Package-Version #NOTE: Pass in as a parameter (not a property) or environment variable to override
-	[string]$version          = Get-Version
-	[string]$configuration    = $(if ($configuration) { $configuration } else { if ($env:BuildConfiguration) { $env:BuildConfiguration } else { "Release" } })  #NOTE: Pass in as a parameter (not a property) or environment variable to override
-	[string]$platform   = $(if ($platform) { $platform } else { if ($env:BuildPlatform) { $env:BuildPlatform } else { "Any CPU" } })  #NOTE: Pass in as a parameter (not a property) or environment variable to override
-	[bool]$backup_files       = $true
-	[bool]$prepareForBuild    = $true
-	[bool]$generateBuildBat   = $false
-	[bool]$zipPublishedArtifacts = $false
-	[string]$publishedArtifactZipFileName = "artifact.zip"
+    [string]$buildCounter     = $(if ($buildCounter) { $buildCounter } else { $env:BuildCounter }) #NOTE: Pass in as a parameter (not a property) or environment variable to override
+    [string]$preReleaseCounterPattern = $(if ($preReleaseCounterPattern) { $preReleaseCounterPattern } else { if ($env:PreReleaseCounterPattern) { $env:PreReleaseCounterPattern } else { "0000000000" } })  #NOTE: Pass in as a parameter (not a property) or environment variable to override
+    [string]$versionSuffix    = $(if ($versionSuffix -ne $null) { $versionSuffix } else { if ($env:VersionSuffix -ne $null) { $env:VersionSuffix } else { 'ci' }}) #NOTE: Pass in as a parameter (not a property) or environment variable to override
+    [string]$packageVersion   = Get-Package-Version #NOTE: Pass in as a parameter (not a property) or environment variable to override
+    [string]$version          = Get-Version
+    [string]$configuration    = $(if ($configuration) { $configuration } else { if ($env:BuildConfiguration) { $env:BuildConfiguration } else { "Release" } })  #NOTE: Pass in as a parameter (not a property) or environment variable to override
+    [string]$platform   = $(if ($platform) { $platform } else { if ($env:BuildPlatform) { $env:BuildPlatform } else { "Any CPU" } })  #NOTE: Pass in as a parameter (not a property) or environment variable to override
+    [bool]$backup_files       = $true
+    [bool]$prepareForBuild    = $true
+    [bool]$generateBuildBat   = $false
+    [bool]$zipPublishedArtifacts = $false
+    [string]$publishedArtifactZipFileName = "artifact.zip"
 
-	[int]$maximumParalellJobs = 8
-	
-	#test paramters
-	[string]$frameworks_to_test = "net5.0,netcoreapp3.1,netcoreapp2.1,net48"
-	[string]$where = ""
+    [int]$maximumParalellJobs = 8
+    
+    #test paramters
+    [string]$frameworks_to_test = "net5.0,netcoreapp3.1,netcoreapp2.1,net48"
+    [string]$where = ""
 }
 
 $backedUpFiles = New-Object System.Collections.ArrayList
 if ($IsWindows -eq $null) {
-	$IsWindows = $Env:OS.StartsWith('Windows')
+    $IsWindows = $Env:OS.StartsWith('Windows')
 }
 
 task default -depends Pack
 
 task Clean -description "This task cleans up the build directory" {
-	Write-Host "##teamcity[progressMessage 'Cleaning']"
-	Write-Host "##vso[task.setprogress]'Cleaning'"
-	Remove-Item $release_directory -Force -Recurse -ErrorAction SilentlyContinue
-	Get-ChildItem $base_directory -Include *.bak -Recurse | foreach ($_) {Remove-Item $_.FullName}
+    Write-Host "##teamcity[progressMessage 'Cleaning']"
+    Write-Host "##vso[task.setprogress]'Cleaning'"
+    Remove-Item $release_directory -Force -Recurse -ErrorAction SilentlyContinue
+    Get-ChildItem $base_directory -Include *.bak -Recurse | foreach ($_) {Remove-Item $_.FullName}
 }
 
 task UpdateLocalSDKVersion -description "Backs up the project.json file and pins the version to $sdkVersion" {
-	Backup-File $globalJsonFile
-	Generate-Global-Json `
-		-sdkVersion $sdkVersion `
-		-file $globalJsonFile
+    Backup-File $globalJsonFile
+    Generate-Global-Json `
+        -sdkVersion $sdkVersion `
+        -file $globalJsonFile
 }
 
 task InstallSDK -description "This task makes sure the correct SDK version is installed to build" -ContinueOnError {
-	Write-Host "##teamcity[progressMessage 'Installing SDK $sdkVersion']"
-	Write-Host "##vso[task.setprogress]'Installing SDK $sdkVersion'"
-	$installed = Is-Sdk-Version-Installed $sdkVersion
-	if (!$installed) {
-		Write-Host "Requires SDK version $sdkVersion, installing..." -ForegroundColor Red
-		Invoke-Expression "$base_directory\build\dotnet-install.ps1 -Version $sdkVersion"
-	}
+    Write-Host "##teamcity[progressMessage 'Installing SDK $sdkVersion']"
+    Write-Host "##vso[task.setprogress]'Installing SDK $sdkVersion'"
+    $installed = Is-Sdk-Version-Installed $sdkVersion
+    if (!$installed) {
+        Write-Host "Requires SDK version $sdkVersion, installing..." -ForegroundColor Red
+        Invoke-Expression "$base_directory\build\dotnet-install.ps1 -Version $sdkVersion"
+    }
 
-	# Safety check - this should never happen
-	& where.exe dotnet.exe
+    # Safety check - this should never happen
+    & where.exe dotnet.exe
 
-	if ($LASTEXITCODE -ne 0) {
-		throw "Could not find dotnet CLI in PATH. Please install the .NET Core 3.1 SDK, version $sdkVersion."
-	}
+    if ($LASTEXITCODE -ne 0) {
+        throw "Could not find dotnet CLI in PATH. Please install the .NET Core 3.1 SDK, version $sdkVersion."
+    }
 }
 
 task Init -depends InstallSDK, UpdateLocalSDKVersion -description "This task makes sure the build environment is correctly setup" {
-	#Update TeamCity, MyGet, or Azure Pipelines with packageVersion
-	Write-Output "##teamcity[buildNumber '$packageVersion']"
-	Write-Output "##myget[buildNumber '$packageVersion']"
-	Write-Host "##vso[build.updatebuildnumber]$packageVersion"
+    #Update TeamCity, MyGet, or Azure Pipelines with packageVersion
+    Write-Output "##teamcity[buildNumber '$packageVersion']"
+    Write-Output "##myget[buildNumber '$packageVersion']"
+    Write-Host "##vso[build.updatebuildnumber]$packageVersion"
 
-	& dotnet.exe --version
-	& dotnet.exe --info
-	Write-Host "Base Directory: $base_directory"
-	Write-Host "Release Directory: $release_directory"
-	Write-Host "Source Directory: $source_directory"
-	Write-Host "Tools Directory: $tools_directory"
-	Write-Host "NuGet Package Directory: $nuget_package_directory"
-	Write-Host "BuildCounter: $buildCounter"
-	Write-Host "PreReleaseCounterPattern: $preReleaseCounterPattern"
-	Write-Host "VersionSuffix: $versionSuffix"
-	Write-Host "Package Version: $packageVersion"
-	Write-Host "Version: $version"
-	Write-Host "Configuration: $configuration"
-	Write-Host "Platform: $platform"
-	Write-Host "MaximumParallelJobs: $($maximumParalellJobs.ToString())"
-	Write-Host "Powershell Version: $($PSVersionTable.PSVersion)"
+    & dotnet.exe --version
+    & dotnet.exe --info
+    Write-Host "Base Directory: $base_directory"
+    Write-Host "Release Directory: $release_directory"
+    Write-Host "Source Directory: $source_directory"
+    Write-Host "Tools Directory: $tools_directory"
+    Write-Host "NuGet Package Directory: $nuget_package_directory"
+    Write-Host "BuildCounter: $buildCounter"
+    Write-Host "PreReleaseCounterPattern: $preReleaseCounterPattern"
+    Write-Host "VersionSuffix: $versionSuffix"
+    Write-Host "Package Version: $packageVersion"
+    Write-Host "Version: $version"
+    Write-Host "Configuration: $configuration"
+    Write-Host "Platform: $platform"
+    Write-Host "MaximumParallelJobs: $($maximumParalellJobs.ToString())"
+    Write-Host "Powershell Version: $($PSVersionTable.PSVersion)"
 
-	Ensure-Directory-Exists "$release_directory"
+    Ensure-Directory-Exists "$release_directory"
 }
 
 task Restore -description "This task restores the dependencies" {
-	Write-Host "##teamcity[progressMessage 'Restoring']"
-	Write-Host "##vso[task.setprogress]'Restoring'"
-	Exec { 
-		& dotnet.exe restore $solutionFile --no-dependencies /p:TestFrameworks=true
-	}
+    Write-Host "##teamcity[progressMessage 'Restoring']"
+    Write-Host "##vso[task.setprogress]'Restoring'"
+    Exec { 
+        & dotnet.exe restore $solutionFile --no-dependencies /p:TestFrameworks=true
+    }
 }
 
 task Compile -depends Clean, Init, Restore -description "This task compiles the solution" {
-	Write-Host "##teamcity[progressMessage 'Compiling']"
-	Write-Host "##vso[task.setprogress]'Compiling'"
-	try {
-		if ($prepareForBuild -eq $true) {
-			Prepare-For-Build
-		}
+    Write-Host "##teamcity[progressMessage 'Compiling']"
+    Write-Host "##vso[task.setprogress]'Compiling'"
+    try {
+        if ($prepareForBuild -eq $true) {
+            Prepare-For-Build
+        }
 
-		$testFrameworks = [string]::Join(';', (Get-FrameworksToTest))
+        $testFrameworks = [string]::Join(';', (Get-FrameworksToTest))
 
-		Write-Host "TestFrameworks set to: $testFrameworks" -ForegroundColor Green
+        Write-Host "TestFrameworks set to: $testFrameworks" -ForegroundColor Green
 
-		Exec {
-			# NOTE: Version information is not passed in at the command line,
-			# instead it is output to the Version.props file. This file is then
-			# used during a release to "freeze" the build at a specific version
-			# so it is always a constant in release distributions.
-			& dotnet.exe msbuild $solutionFile /t:Build `
-				/p:Configuration=$configuration `
-				/p:Platform=$platform `
-				/p:PortableDebugTypeOnly=true `
-				/p:TestFrameworks=true # workaround for parsing issue: https://github.com/Microsoft/msbuild/issues/471#issuecomment-181963350
-		}
+        Exec {
+            # NOTE: Version information is not passed in at the command line,
+            # instead it is output to the Version.props file. This file is then
+            # used during a release to "freeze" the build at a specific version
+            # so it is always a constant in release distributions.
+            & dotnet.exe msbuild $solutionFile /t:Build `
+                /p:Configuration=$configuration `
+                /p:Platform=$platform `
+                /p:PortableDebugTypeOnly=true `
+                /p:TestFrameworks=true # workaround for parsing issue: https://github.com/Microsoft/msbuild/issues/471#issuecomment-181963350
+        }
 
-		$success = $true
-	} finally {
-		if ($success -ne $true) {
-			Restore-Files $backedUpFiles
-		}
-	}
+        $success = $true
+    } finally {
+        if ($success -ne $true) {
+            Restore-Files $backedUpFiles
+        }
+    }
 }
 
 task Pack -depends Compile -description "This task creates the NuGet packages" {
-	Write-Host "##teamcity[progressMessage 'Packing']"
-	Write-Host "##vso[task.setprogress]'Packing'"
-	#create the nuget package output directory
-	Ensure-Directory-Exists "$nuget_package_directory"
+    Write-Host "##teamcity[progressMessage 'Packing']"
+    Write-Host "##vso[task.setprogress]'Packing'"
+    #create the nuget package output directory
+    Ensure-Directory-Exists "$nuget_package_directory"
 
-	try {
-		Exec {
-			# NOTE: Package version information is not passed in at the command line,
-			# instead it is output to the Version.props file. This file is then
-			# used during a release to "freeze" the build at a specific version
-			# so it is always a constant in release distributions.
-			& dotnet.exe pack $solutionFile --configuration $configuration --output $nuget_package_directory --no-build
-		}
+    try {
+        Exec {
+            # NOTE: Package version information is not passed in at the command line,
+            # instead it is output to the Version.props file. This file is then
+            # used during a release to "freeze" the build at a specific version
+            # so it is always a constant in release distributions.
+            & dotnet.exe pack $solutionFile --configuration $configuration --output $nuget_package_directory --no-build
+        }
 
-		$success = $true
-	} finally {
-		#if ($success -ne $true) {
-			Restore-Files $backedUpFiles
-			#Remove Version.props, as we don't want it to be committed to the repository
-			if ($backup_files -eq $true -and (Test-Path -Path "$versionPropsFile") -eq $true) {
-				Remove-Item -Path "$versionPropsFile" -Force
-			}
-		#}
-	}
+        $success = $true
+    } finally {
+        #if ($success -ne $true) {
+            Restore-Files $backedUpFiles
+            #Remove Version.props, as we don't want it to be committed to the repository
+            if ($backup_files -eq $true -and (Test-Path -Path "$versionPropsFile") -eq $true) {
+                Remove-Item -Path "$versionPropsFile" -Force
+            }
+        #}
+    }
 }
 
 # Loops through each framework in the TestTargetFrameworks variable and
 # publishes the project in the artifact staging directory with the framework
 # and project name as part of the folder structure.
 task Publish -depends Compile -description "This task uses dotnet publish to package the binaries with all of their dependencies so they can be run xplat" {
-	Write-Host "##teamcity[progressMessage 'Publishing']"
-	Write-Host "##vso[task.setprogress]'Publishing'"
+    Write-Host "##teamcity[progressMessage 'Publishing']"
+    Write-Host "##vso[task.setprogress]'Publishing'"
 
-	try {
-		$frameworksToTest = Get-FrameworksToTest
+    try {
+        $frameworksToTest = Get-FrameworksToTest
 
-		if ($zipPublishedArtifacts) {
-			$outDirectory = New-TemporaryDirectory
-		} else {
-			$outDirectory = $publish_directory
-		}
-		
-		foreach ($framework in $frameworksToTest) {
-			$testProjects = Get-ChildItem -Path "$source_directory/**/*.csproj" -Recurse | ? { $_.Directory.Name.Contains(".Tests") } | Select -ExpandProperty FullName
-			foreach ($testProject in $testProjects) {
-				# Pause if we have queued too many parallel jobs
-				$running = @(Get-Job | Where-Object { $_.State -eq 'Running' })
-				if ($running.Count -ge $maximumParalellJobs) {
-					$running | Wait-Job -Any | Out-Null
-				}
+        if ($zipPublishedArtifacts) {
+            $outDirectory = New-TemporaryDirectory
+        } else {
+            $outDirectory = $publish_directory
+        }
+        
+        foreach ($framework in $frameworksToTest) {
+            $testProjects = Get-ChildItem -Path "$source_directory/**/*.csproj" -Recurse | ? { $_.Directory.Name.Contains(".Tests") } | Select -ExpandProperty FullName
+            foreach ($testProject in $testProjects) {
+                # Pause if we have queued too many parallel jobs
+                $running = @(Get-Job | Where-Object { $_.State -eq 'Running' })
+                if ($running.Count -ge $maximumParalellJobs) {
+                    $running | Wait-Job -Any | Out-Null
+                }
 
-				$projectName = [System.IO.Path]::GetFileNameWithoutExtension($testProject)
+                $projectName = [System.IO.Path]::GetFileNameWithoutExtension($testProject)
 
-				# Special case - our CLI tool only supports .NET Core 3.1
-				if ($projectName.Contains("Tests.Cli") -and (!$framework.StartsWith("netcoreapp3.1"))) {
-					continue
-				}
+                # Special case - our CLI tool only supports .NET Core 3.1
+                if ($projectName.Contains("Tests.Cli") -and (!$framework.StartsWith("netcoreapp3.1"))) {
+                    continue
+                }
 
-				# Special case - OpenNLP.NET only supports .NET Framework
-				if ($projectName.Contains("Tests.Analysis.OpenNLP") -and (!$framework.StartsWith("net4"))) {
-					continue
-				}
+                # Special case - OpenNLP.NET only supports .NET Framework
+                if ($projectName.Contains("Tests.Analysis.OpenNLP") -and (!$framework.StartsWith("net4"))) {
+                    continue
+                }
 
-				# Special case - Morfologik doesn't support .NET Standard 1.x
-				if ($projectName.Contains("Tests.Analysis.Morfologik") -and ($framework.StartsWith("netcoreapp1."))) {
-					continue
-				}
+                # Special case - Morfologik doesn't support .NET Standard 1.x
+                if ($projectName.Contains("Tests.Analysis.Morfologik") -and ($framework.StartsWith("netcoreapp1."))) {
+                    continue
+                }
 
-				$logPath = "$outDirectory/$framework"
-				$outputPath = "$logPath/$projectName"
+                $logPath = "$outDirectory/$framework"
+                $outputPath = "$logPath/$projectName"
 
-				# Do this first so there is no conflict
-				Ensure-Directory-Exists $outputPath
+                # Do this first so there is no conflict
+                Ensure-Directory-Exists $outputPath
 
-				$scriptBlock = {
-					param([string]$testProject, [string]$outputPath, [string]$logPath, [string]$framework, [string]$configuration, [string]$projectName)
-					Write-Host "Publishing '$testProject' on '$framework' to '$outputPath'..."
-					# Note: Cannot use Psake Exec in background
-					dotnet publish "$testProject" --output "$outputPath" --framework "$framework" --configuration "$configuration" --no-build --no-restore --verbosity Detailed /p:TestFrameworks=true /p:Platform="$platform" > "$logPath/$projectName-dotnet-publish.log" 2> "$logPath/$projectName-dotnet-publish-error.log"
-				}
+                $scriptBlock = {
+                    param([string]$testProject, [string]$outputPath, [string]$logPath, [string]$framework, [string]$configuration, [string]$projectName)
+                    Write-Host "Publishing '$testProject' on '$framework' to '$outputPath'..."
+                    # Note: Cannot use Psake Exec in background
+                    dotnet publish "$testProject" --output "$outputPath" --framework "$framework" --configuration "$configuration" --no-build --no-restore --verbosity Detailed /p:TestFrameworks=true /p:Platform="$platform" > "$logPath/$projectName-dotnet-publish.log" 2> "$logPath/$projectName-dotnet-publish-error.log"
+                }
 
-				# Execute the jobs in parallel
-				Start-Job $scriptBlock -ArgumentList $testProject,$outputPath,$logPath,$framework,$configuration,$projectName
-			}
-		}
+                # Execute the jobs in parallel
+                Start-Job $scriptBlock -ArgumentList $testProject,$outputPath,$logPath,$framework,$configuration,$projectName
+            }
+        }
 
-		# Wait for it all to complete
-		do {
-			$running = @(Get-Job | Where-Object { $_.State -eq 'Running' })
-			if ($running.Count -gt 0) {
-				Write-Host ""
-				Write-Host "  Almost finished, only $($running.Count) projects left to publish..." -ForegroundColor Cyan
-				$running | Wait-Job -Any | Out-Null
-			}
-		} until ($running.Count -eq 0)
+        # Wait for it all to complete
+        do {
+            $running = @(Get-Job | Where-Object { $_.State -eq 'Running' })
+            if ($running.Count -gt 0) {
+                Write-Host ""
+                Write-Host "  Almost finished, only $($running.Count) projects left to publish..." -ForegroundColor Cyan
+                $running | Wait-Job -Any | Out-Null
+            }
+        } until ($running.Count -eq 0)
 
-		# Getting the information back from the jobs (time consuming)
-		#Get-Job | Receive-Job
+        # Getting the information back from the jobs (time consuming)
+        #Get-Job | Receive-Job
 
-		if ($zipPublishedArtifacts) {
-			Ensure-Directory-Exists $publish_directory
-			Add-Type -assembly "System.IO.Compression.Filesystem"
-			[System.IO.Compression.ZipFile]::CreateFromDirectory($outDirectory, "$publish_directory/$publishedArtifactZipFileName")
-		}
+        if ($zipPublishedArtifacts) {
+            Ensure-Directory-Exists $publish_directory
+            Add-Type -assembly "System.IO.Compression.Filesystem"
+            [System.IO.Compression.ZipFile]::CreateFromDirectory($outDirectory, "$publish_directory/$publishedArtifactZipFileName")
+        }
 
-		$success = $true
-	} finally {
-		#if ($success -ne $true) {
-			Restore-Files $backedUpFiles
-		#}
-	}
+        $success = $true
+    } finally {
+        #if ($success -ne $true) {
+            Restore-Files $backedUpFiles
+        #}
+    }
 }
 
 task Test -depends InstallSDK, UpdateLocalSDKVersion, Restore -description "This task runs the tests" {
-	Write-Host "##teamcity[progressMessage 'Testing']"
-	Write-Host "##vso[task.setprogress]'Testing'"
-	Write-Host "Running tests..." -ForegroundColor DarkCyan
+    Write-Host "##teamcity[progressMessage 'Testing']"
+    Write-Host "##vso[task.setprogress]'Testing'"
+    Write-Host "Running tests..." -ForegroundColor DarkCyan
 
-	pushd $base_directory
-	$testProjects = Get-ChildItem -Path "$source_directory/**/*.csproj" -Recurse | ? { $_.Directory.Name.Contains(".Tests") }
-	popd
+    pushd $base_directory
+    $testProjects = Get-ChildItem -Path "$source_directory/**/*.csproj" -Recurse | ? { $_.Directory.Name.Contains(".Tests") }
+    popd
 
-	$testProjects = $testProjects | Sort-Object -Property FullName
+    $testProjects = $testProjects | Sort-Object -Property FullName
 
-	$frameworksToTest = Get-FrameworksToTest
+    $frameworksToTest = Get-FrameworksToTest
 
-	Write-Host "frameworksToTest: $frameworksToTest" -ForegroundColor Yellow
+    Write-Host "frameworksToTest: $frameworksToTest" -ForegroundColor Yellow
 
-	[int]$totalProjects = $testProjects.Length * $frameworksToTest.Length
-	[int]$remainingProjects = $totalProjects
+    [int]$totalProjects = $testProjects.Length * $frameworksToTest.Length
+    [int]$remainingProjects = $totalProjects
 
-	Ensure-Directory-Exists $test_results_directory
+    Ensure-Directory-Exists $test_results_directory
 
-	foreach ($testProject in $testProjects) {
+    foreach ($testProject in $testProjects) {
 
-		foreach ($framework in $frameworksToTest) {
-			$testName = $testProject.Directory.Name
+        foreach ($framework in $frameworksToTest) {
+            $testName = $testProject.Directory.Name
 
-			# Special case - our CLI tool only supports .NET Core 3.1
-			if ($testName.Contains("Tests.Cli") -and (!$framework.StartsWith("netcoreapp3.1"))) {
-				$totalProjects--
-				$remainingProjects--
-				continue
-			}
-			
-			# Special case - OpenNLP.NET only supports .NET Framework
-			if ($testName.Contains("Tests.Analysis.OpenNLP") -and (!$framework.StartsWith("net4"))) {
-				$totalProjects--
-				$remainingProjects--
-				continue
-			}
+            # Special case - our CLI tool only supports .NET Core 3.1
+            if ($testName.Contains("Tests.Cli") -and (!$framework.StartsWith("netcoreapp3.1"))) {
+                $totalProjects--
+                $remainingProjects--
+                continue
+            }
+            
+            # Special case - OpenNLP.NET only supports .NET Framework
+            if ($testName.Contains("Tests.Analysis.OpenNLP") -and (!$framework.StartsWith("net4"))) {
+                $totalProjects--
+                $remainingProjects--
+                continue
+            }
 
-			# Special case - Morfologik doesn't support .NET Standard 1.x
-			if ($testName.Contains("Tests.Analysis.Morfologik") -and ($framework.StartsWith("netcoreapp1."))) {
-				$totalProjects--
-				$remainingProjects--
-				continue
-			}
+            # Special case - Morfologik doesn't support .NET Standard 1.x
+            if ($testName.Contains("Tests.Analysis.Morfologik") -and ($framework.StartsWith("netcoreapp1."))) {
+                $totalProjects--
+                $remainingProjects--
+                continue
+            }
 
-			Write-Host "  Next Project in Queue: $testName, Framework: $framework" -ForegroundColor Yellow
+            Write-Host "  Next Project in Queue: $testName, Framework: $framework" -ForegroundColor Yellow
 
-			# Pause if we have queued too many parallel jobs
-			$running = @(Get-Job | Where-Object { $_.State -eq 'Running' })
-			if ($running.Count -ge $maximumParalellJobs) {
-				Write-Host ""
-				Write-Host "  Running tests in parallel on $($running.Count) projects out of approximately $totalProjects total." -ForegroundColor Cyan
-				Write-Host "  $remainingProjects projects are waiting in the queue to run. This will take a bit, please wait..." -ForegroundColor Cyan
-				$running | Wait-Job -Any | Out-Null
-			}
-			$remainingProjects -= 1
+            # Pause if we have queued too many parallel jobs
+            $running = @(Get-Job | Where-Object { $_.State -eq 'Running' })
+            if ($running.Count -ge $maximumParalellJobs) {
+                Write-Host ""
+                Write-Host "  Running tests in parallel on $($running.Count) projects out of approximately $totalProjects total." -ForegroundColor Cyan
+                Write-Host "  $remainingProjects projects are waiting in the queue to run. This will take a bit, please wait..." -ForegroundColor Cyan
+                $running | Wait-Job -Any | Out-Null
+            }
+            $remainingProjects -= 1
 
-			$testResultDirectory = "$test_results_directory/$framework/$testName"
-			Ensure-Directory-Exists $testResultDirectory
+            $testResultDirectory = "$test_results_directory/$framework/$testName"
+            Ensure-Directory-Exists $testResultDirectory
 
-			$testProjectPath = $testProject.FullName
-			$testExpression = "dotnet.exe test $testProjectPath --configuration $configuration --framework $framework --no-build"
-			$testExpression = "$testExpression --no-restore --blame --results-directory $testResultDirectory"
+            $testProjectPath = $testProject.FullName
+            $testExpression = "dotnet.exe test $testProjectPath --configuration $configuration --framework $framework --no-build"
+            $testExpression = "$testExpression --no-restore --blame --results-directory $testResultDirectory"
 
-			# Breaking change: We need to explicitly set the logger for it to work with TeamCity.
-			# See: https://github.com/microsoft/vstest/issues/1590#issuecomment-393460921
+            # Breaking change: We need to explicitly set the logger for it to work with TeamCity.
+            # See: https://github.com/microsoft/vstest/issues/1590#issuecomment-393460921
 
-			# Log to the console normal verbosity. With the TeamCity.VSTest.TestAdapter
-			# referenced by the test DLL, this will output teamcity service messages.
-			# Also, it displays pretty user output on the console.
-			$testExpression = "$testExpression --logger:""console;verbosity=normal"""
+            # Log to the console normal verbosity. With the TeamCity.VSTest.TestAdapter
+            # referenced by the test DLL, this will output teamcity service messages.
+            # Also, it displays pretty user output on the console.
+            $testExpression = "$testExpression --logger:""console;verbosity=normal"""
 
-			# Also log to a file in TRX format, so we have a build artifact both when
-			# doing release inspection and on the CI server.
-			$testExpression = "$testExpression --logger:""trx;LogFileName=TestResults.trx"""
-			
-			if (![string]::IsNullOrEmpty($where)) {
-				$testExpression = "$testExpression --TestCaseFilter:""$where"""
-			}
+            # Also log to a file in TRX format, so we have a build artifact both when
+            # doing release inspection and on the CI server.
+            $testExpression = "$testExpression --logger:""trx;LogFileName=TestResults.trx"""
+            
+            if (![string]::IsNullOrEmpty($where)) {
+                $testExpression = "$testExpression --TestCaseFilter:""$where"""
+            }
 
-			Write-Host $testExpression -ForegroundColor Magenta
+            Write-Host $testExpression -ForegroundColor Magenta
 
-			$scriptBlock = {
-				param([string]$testExpression, [string]$testResultDirectory)
-				$testExpression = "$testExpression > '$testResultDirectory/dotnet-test.log' 2> '$testResultDirectory/dotnet-test-error.log'"
-				Invoke-Expression $testExpression
-			}
+            $scriptBlock = {
+                param([string]$testExpression, [string]$testResultDirectory)
+                $testExpression = "$testExpression > '$testResultDirectory/dotnet-test.log' 2> '$testResultDirectory/dotnet-test-error.log'"
+                Invoke-Expression $testExpression
+            }
 
-			# Execute the jobs in parallel
-			Start-Job -Name "$testName,$framework" -ScriptBlock $scriptBlock -ArgumentList $testExpression,$testResultDirectory
+            # Execute the jobs in parallel
+            Start-Job -Name "$testName,$framework" -ScriptBlock $scriptBlock -ArgumentList $testExpression,$testResultDirectory
 
-			#Invoke-Expression $testExpression
-			## fail the build on negative exit codes (NUnit errors - if positive it is a test count or, if 1, it could be a dotnet error)
-			#if ($LASTEXITCODE -lt 0) {
-			#	throw "Test execution failed"
-			#}
-		}
-	}
+            #Invoke-Expression $testExpression
+            ## fail the build on negative exit codes (NUnit errors - if positive it is a test count or, if 1, it could be a dotnet error)
+            #if ($LASTEXITCODE -lt 0) {
+            #	throw "Test execution failed"
+            #}
+        }
+    }
 
-	do {
-		$running = @(Get-Job | Where-Object { $_.State -eq 'Running' })
-		if ($running.Count -gt 0) {
-			Write-Host ""
-			Write-Host "  Almost finished, only $($running.Count) test projects left..." -ForegroundColor Cyan
-			[int]$number = 0
-			foreach ($runningJob in $running) {
-				$number++
-				$jobName = $runningJob | Select-Object -ExpandProperty Name
-				Write-Host "$number. $jobName"
-			}
-			$running | Wait-Job -Any
-		}
-	} until ($running.Count -eq 0)
+    do {
+        $running = @(Get-Job | Where-Object { $_.State -eq 'Running' })
+        if ($running.Count -gt 0) {
+            Write-Host ""
+            Write-Host "  Almost finished, only $($running.Count) test projects left..." -ForegroundColor Cyan
+            [int]$number = 0
+            foreach ($runningJob in $running) {
+                $number++
+                $jobName = $runningJob | Select-Object -ExpandProperty Name
+                Write-Host "$number. $jobName"
+            }
+            $running | Wait-Job -Any
+        }
+    } until ($running.Count -eq 0)
 
-	Summarize-Test-Results -FrameworksToTest $frameworksToTest
+    Summarize-Test-Results -FrameworksToTest $frameworksToTest
 }
 
 function Get-Package-Version() {
-	Write-Host $parameters.packageVersion -ForegroundColor Red
+    Write-Host $parameters.packageVersion -ForegroundColor Red
 
-	#If $packageVersion is not passed in (as a parameter or environment variable), get it from Version.proj
-	if (![string]::IsNullOrWhiteSpace($parameters.packageVersion) -and $parameters.packageVersion -ne "0.0.0") {
-		return $parameters.packageVersion
-	} elseif (![string]::IsNullOrWhiteSpace($env:PackageVersion) -and $env:PackageVersion -ne "0.0.0") {
-		return $env:PackageVersion
-	} else {
-		#Get the version info
-		$versionFile = "$base_directory/Directory.Build.props"
-		$xml = [xml](Get-Content $versionFile)
+    #If $packageVersion is not passed in (as a parameter or environment variable), get it from Version.proj
+    if (![string]::IsNullOrWhiteSpace($parameters.packageVersion) -and $parameters.packageVersion -ne "0.0.0") {
+        return $parameters.packageVersion
+    } elseif (![string]::IsNullOrWhiteSpace($env:PackageVersion) -and $env:PackageVersion -ne "0.0.0") {
+        return $env:PackageVersion
+    } else {
+        #Get the version info
+        $versionFile = "$base_directory/Directory.Build.props"
+        $xml = [xml](Get-Content $versionFile)
 
-		$versionPrefix = ([string]$xml.Project.PropertyGroup.VersionPrefix).Trim()
+        $versionPrefix = ([string]$xml.Project.PropertyGroup.VersionPrefix).Trim()
 
-		if ([string]::IsNullOrWhiteSpace($versionSuffix)) {
-			# this is a production release - use 4 segment version number 0.0.0.0
-			if ([string]::IsNullOrWhiteSpace($buildCounter)) {
-				$buildCounter = "0"
-			}
-			$packageVersion = "$versionPrefix.$buildCounter"
-		} else {
-			if (![string]::IsNullOrWhiteSpace($buildCounter)) {
-				$buildCounter = ([Int32]$buildCounter).ToString($preReleaseCounterPattern)
-			}
-			# this is a pre-release - use 3 segment version number with (optional) zero-padded pre-release tag
-			$packageVersion = "$versionPrefix-$versionSuffix$buildCounter"
-		}
+        if ([string]::IsNullOrWhiteSpace($versionSuffix)) {
+            # this is a production release - use 4 segment version number 0.0.0.0
+            if ([string]::IsNullOrWhiteSpace($buildCounter)) {
+                $buildCounter = "0"
+            }
+            $packageVersion = "$versionPrefix.$buildCounter"
+        } else {
+            if (![string]::IsNullOrWhiteSpace($buildCounter)) {
+                $buildCounter = ([Int32]$buildCounter).ToString($preReleaseCounterPattern)
+            }
+            # this is a pre-release - use 3 segment version number with (optional) zero-padded pre-release tag
+            $packageVersion = "$versionPrefix-$versionSuffix$buildCounter"
+        }
 
-		return $packageVersion
-	}
+        return $packageVersion
+    }
 }
 
 function Get-Version() {
-	#If $version is not passed in, parse it from $packageVersion
-	if ([string]::IsNullOrWhiteSpace($version) -or $version -eq "0.0.0") {
-		$version = Get-Package-Version
-		if ($version.Contains("-") -eq $true) {
-			$version = $version.SubString(0, $version.IndexOf("-"))
-		}
-	}
-	return $version
+    #If $version is not passed in, parse it from $packageVersion
+    if ([string]::IsNullOrWhiteSpace($version) -or $version -eq "0.0.0") {
+        $version = Get-Package-Version
+        if ($version.Contains("-") -eq $true) {
+            $version = $version.SubString(0, $version.IndexOf("-"))
+        }
+    }
+    return $version
 }
 
 function Get-FrameworksToTest() {
@@ -446,85 +446,85 @@
 }
 
 function Is-Sdk-Version-Installed([string]$sdkVersion) {
-	& where.exe dotnet.exe | Out-Null
-	if ($LASTEXITCODE -eq 0) {
-		pushd $PSScriptRoot
-		$version = ((& dotnet --version 2>&1) | Out-String).Trim()
-		popd
+    & where.exe dotnet.exe | Out-Null
+    if ($LASTEXITCODE -eq 0) {
+        pushd $PSScriptRoot
+        $version = ((& dotnet --version 2>&1) | Out-String).Trim()
+        popd
 
         # May happen if global.json contains a version that
         # isn't installed, but we have at least one
-		if ($version.Contains('not found')) {
-			return $false
-		} elseif ([version]$version -eq [version]$sdkVersion) {
+        if ($version.Contains('not found')) {
+            return $false
+        } elseif ([version]$version -eq [version]$sdkVersion) {
             return $true
         } elseif ([version]$version -gt [version]"2.1.0") {
             $availableSdks = ((& dotnet --list-sdks) | Out-String)
             if ($LASTEXITCODE -eq 0) {
-			    if ($availableSdks.Contains($sdkVersion)) {
+                if ($availableSdks.Contains($sdkVersion)) {
                     return $true
                 } else {
                     return $false
                 }
             } else {
-			    return (Test-Path "$sdkPath/$sdkVersion")
-		    }
+                return (Test-Path "$sdkPath/$sdkVersion")
+            }
         }
-	}
+    }
     return $false
 }
 
 function Prepare-For-Build() {
-	#Use only the major version as the assembly version.
-	#This ensures binary compatibility unless the major version changes.
-	$version -match "(^\d+)"
-	$assemblyVersion = $Matches[0]
-	$assemblyVersion = "$assemblyVersion.0.0"
+    #Use only the major version as the assembly version.
+    #This ensures binary compatibility unless the major version changes.
+    $version -match "(^\d+)"
+    $assemblyVersion = $Matches[0]
+    $assemblyVersion = "$assemblyVersion.0.0"
 
-	Write-Host "Assembly version set to: $assemblyVersion" -ForegroundColor Green
+    Write-Host "Assembly version set to: $assemblyVersion" -ForegroundColor Green
 
-	$informationalVersion = $packageVersion
-	#check for presense of Git
-	& where.exe git.exe
-	if ($LASTEXITCODE -eq 0) {
-		$gitCommit = ((git rev-parse --verify --short=10 head) | Out-String).Trim()
-		$informationalVersion = "$packageVersion commit:[$gitCommit]"
-	}
+    $informationalVersion = $packageVersion
+    #check for presense of Git
+    & where.exe git.exe
+    if ($LASTEXITCODE -eq 0) {
+        $gitCommit = ((git rev-parse --verify --short=10 head) | Out-String).Trim()
+        $informationalVersion = "$packageVersion commit:[$gitCommit]"
+    }
 
-	Write-Host "##vso[task.setvariable variable=AssemblyVersion;]$assemblyVersion"
-	Write-Host "##vso[task.setvariable variable=FileVersion;]$version"
-	Write-Host "##vso[task.setvariable variable=InformationalVersion;]$informationalVersion"
-	Write-Host "##vso[task.setvariable variable=PackageVersion;]$packageVersion"
+    Write-Host "##vso[task.setvariable variable=AssemblyVersion;]$assemblyVersion"
+    Write-Host "##vso[task.setvariable variable=FileVersion;]$version"
+    Write-Host "##vso[task.setvariable variable=InformationalVersion;]$informationalVersion"
+    Write-Host "##vso[task.setvariable variable=PackageVersion;]$packageVersion"
 
-	Write-Host "Assembly informational version set to: $informationalVersion" -ForegroundColor Green
+    Write-Host "Assembly informational version set to: $informationalVersion" -ForegroundColor Green
 
-	Generate-Version-Props `
-		-AssemblyVersion $assemblyVersion `
-		-FileVersion $version `
-		-InformationalVersion $informationalVersion `
-		-PackageVersion $packageVersion `
-		-File $versionPropsFile
-	Update-Constants-Version $packageVersion
+    Generate-Version-Props `
+        -AssemblyVersion $assemblyVersion `
+        -FileVersion $version `
+        -InformationalVersion $informationalVersion `
+        -PackageVersion $packageVersion `
+        -File $versionPropsFile
+    Update-Constants-Version $packageVersion
 
-	if ($generateBuildBat -eq $true) {
-		Backup-File $build_bat
-		Generate-Build-Bat $build_bat
-	}
+    if ($generateBuildBat -eq $true) {
+        Backup-File $build_bat
+        Generate-Build-Bat $build_bat
+    }
 }
 
 function Update-Constants-Version([string]$version) {
-	$constantsFile = "$base_directory/src/Lucene.Net/Util/Constants.cs"
+    $constantsFile = "$base_directory/src/Lucene.Net/Util/Constants.cs"
 
-	Backup-File $constantsFile
-	(Get-Content $constantsFile) | % {
-		$_-replace "(?<=LUCENE_VERSION\s*?=\s*?"")([^""]*)", $version
-	} | Set-Content $constantsFile -Force
+    Backup-File $constantsFile
+    (Get-Content $constantsFile) | % {
+        $_-replace "(?<=LUCENE_VERSION\s*?=\s*?"")([^""]*)", $version
+    } | Set-Content $constantsFile -Force
 }
 
 function Generate-Global-Json {
 param(
-	[string]$sdkVersion,
-	[string]$file = $(throw "file is a required parameter.")
+    [string]$sdkVersion,
+    [string]$file = $(throw "file is a required parameter.")
 )
 
 $fileText = "{
@@ -533,20 +533,20 @@
     ""version"": ""$sdkVersion""
   }
 }"
-	$dir = [System.IO.Path]::GetDirectoryName($file)
-	Ensure-Directory-Exists $dir
+    $dir = [System.IO.Path]::GetDirectoryName($file)
+    Ensure-Directory-Exists $dir
 
-	Write-Host "Generating global.json file: $file"
-	Out-File -filePath $file -encoding UTF8 -inputObject $fileText
+    Write-Host "Generating global.json file: $file"
+    Out-File -filePath $file -encoding UTF8 -inputObject $fileText
 }
 
 function Generate-Version-Props {
 param(
-	[string]$assemblyVersion,
-	[string]$fileVersion,
-	[string]$informationalVersion,
-	[string]$packageVersion,
-	[string]$file = $(throw "file is a required parameter.")
+    [string]$assemblyVersion,
+    [string]$fileVersion,
+    [string]$informationalVersion,
+    [string]$packageVersion,
+    [string]$file = $(throw "file is a required parameter.")
 )
 
 $fileText = "<!--
@@ -573,16 +573,16 @@
     <PackageVersion>$packageVersion</PackageVersion>
   </PropertyGroup>
 </Project>"
-	$dir = [System.IO.Path]::GetDirectoryName($file)
-	Ensure-Directory-Exists $dir
+    $dir = [System.IO.Path]::GetDirectoryName($file)
+    Ensure-Directory-Exists $dir
 
-	Write-Host "Generating Version.props file: $file"
-	Out-File -filePath $file -encoding UTF8 -inputObject $fileText
+    Write-Host "Generating Version.props file: $file"
+    Out-File -filePath $file -encoding UTF8 -inputObject $fileText
 }
 
 function Generate-Build-Bat {
 param(
-	[string]$file = $(throw "file is a required parameter.")
+    [string]$file = $(throw "file is a required parameter.")
 )
   $buildBat = "
 @echo off
@@ -625,41 +625,41 @@
 set runtests=false
 set maximumParallelJobs=8
 FOR %%a IN (%*) DO (
-	FOR /f ""useback tokens=*"" %%a in ('%%a') do (
-		set value=%%~a
-		
-		set test=!value:~0,2!
-		IF /I !test!==-t (
-			set runtests=true
-		)
-		set test=!value:~0,6!
-		IF /I !test!==--test (
-			set runtests=true
-		)
-		set test=!value:~0,4!
-		IF /I !test!==-mp: (
-			set maximumParallelJobs=!value:~4!
-		)
-		set test=!value:~0,22!
-		IF /I !test!==--maximumparalleljobs: (
-			set maximumParallelJobs=!value:~22!
-		)
-	)
+    FOR /f ""useback tokens=*"" %%a in ('%%a') do (
+        set value=%%~a
+        
+        set test=!value:~0,2!
+        IF /I !test!==-t (
+            set runtests=true
+        )
+        set test=!value:~0,6!
+        IF /I !test!==--test (
+            set runtests=true
+        )
+        set test=!value:~0,4!
+        IF /I !test!==-mp: (
+            set maximumParallelJobs=!value:~4!
+        )
+        set test=!value:~0,22!
+        IF /I !test!==--maximumparalleljobs: (
+            set maximumParallelJobs=!value:~22!
+        )
+    )
 )
 set tasks=""Default""
 if ""!runtests!""==""true"" (
-	set tasks=""Default,Test""
+    set tasks=""Default,Test""
 )
 powershell -ExecutionPolicy Bypass -Command ""& { Import-Module .\build\psake.psm1; Invoke-Psake .\build\build.ps1 -Task %tasks% -properties @{prepareForBuild='false';backup_files='false';maximumParalellJobs=%maximumParallelJobs%} }""
 endlocal
 "
-	$dir = [System.IO.Path]::GetDirectoryName($file)
-	Ensure-Directory-Exists $dir
+    $dir = [System.IO.Path]::GetDirectoryName($file)
+    Ensure-Directory-Exists $dir
 
-	Write-Host "Generating build.bat file: $file"
-	#Out-File -filePath $file -encoding UTF8 -inputObject $buildBat -Force
-	$Utf8EncodingNoBom = New-Object System.Text.UTF8Encoding $false
-	[System.IO.File]::WriteAllLines($file, $buildBat, $Utf8EncodingNoBom)
+    Write-Host "Generating build.bat file: $file"
+    #Out-File -filePath $file -encoding UTF8 -inputObject $buildBat -Force
+    $Utf8EncodingNoBom = New-Object System.Text.UTF8Encoding $false
+    [System.IO.File]::WriteAllLines($file, $buildBat, $Utf8EncodingNoBom)
 }
 
 function New-CountersObject ([string]$project, [string]$outcome, [int]$total, [int]$executed, [int]$passed, [int]$failed, [int]$warning, [int]$inconclusive) {
@@ -673,10 +673,10 @@
 
     foreach ($framework in $frameworksToTest) {
         pushd $base_directory
-	    $testReports = Get-ChildItem -Path "$test_results_directory/$framework" -Recurse -File -Filter "*.trx" | ForEach-Object {
+        $testReports = Get-ChildItem -Path "$test_results_directory/$framework" -Recurse -File -Filter "*.trx" | ForEach-Object {
             $_.FullName
         }
-	    popd
+        popd
         
         [int]$totalCountForFramework = 0
         [int]$executedCountForFramework = 0
@@ -736,9 +736,9 @@
                             @{Expression={$_.Warning};Label='Warning';Width=7},
                             @{Expression={$_.Inconclusive};Label='Inconclusive';Width=14}
 
-						if ($counters.Failed -gt 0) {
-							$Counters | Format-Table $format
-						}
+                        if ($counters.Failed -gt 0) {
+                            $Counters | Format-Table $format
+                        }
                     }
                 }
 
@@ -769,45 +769,45 @@
         Write-Host "Warning: " -NoNewline; Write-Host "$warningCountForFramework" -ForegroundColor $foreground
         $foreground = if ($failedCountForFramework -gt 0) { 'Cyan' } else { (Get-Host).UI.RawUI.ForegroundColor }
         Write-Host "Inconclusive: " -NoNewline; Write-Host "$inconclusiveCountForFramework" -ForegroundColor $foreground
-		Write-Host ""
-		Write-Host "See the .trx logs in $test_results_directory/$framework for more details." -ForegroundColor DarkCyan
+        Write-Host ""
+        Write-Host "See the .trx logs in $test_results_directory/$framework for more details." -ForegroundColor DarkCyan
     }
 }
 
 function Backup-Files([string[]]$paths) {
-	foreach ($path in $paths) {
-		Backup-File $path
-	}
+    foreach ($path in $paths) {
+        Backup-File $path
+    }
 }
 
 function Backup-File([string]$path) {
-	if ($backup_files -eq $true) {
-		Copy-Item $path "$path.bak" -Force
-		$backedUpFiles.Insert(0, $path)
-	} else {
-		Write-Host "Ignoring backup of file $path" -ForegroundColor DarkRed
-	}
+    if ($backup_files -eq $true) {
+        Copy-Item $path "$path.bak" -Force
+        $backedUpFiles.Insert(0, $path)
+    } else {
+        Write-Host "Ignoring backup of file $path" -ForegroundColor DarkRed
+    }
 }
 
 function Restore-Files([string[]]$paths) {
-	foreach ($path in $paths) {
-		Restore-File $path
-	}
+    foreach ($path in $paths) {
+        Restore-File $path
+    }
 }
 
 function Restore-File([string]$path) {
-	if ($backup_files -eq $true) {
-		if (Test-Path "$path.bak") {
-			Move-Item "$path.bak" $path -Force
-		}
-		$backedUpFiles.Remove($path)
-	}
+    if ($backup_files -eq $true) {
+        if (Test-Path "$path.bak") {
+            Move-Item "$path.bak" $path -Force
+        }
+        $backedUpFiles.Remove($path)
+    }
 }
 
 function Ensure-Directory-Exists([string] $path) {
-	if (!(Test-Path $path)) {
-		New-Item $path -ItemType Directory
-	}
+    if (!(Test-Path $path)) {
+        New-Item $path -ItemType Directory
+    }
 }
 
 function New-TemporaryDirectory {