34 lines
876 B
PowerShell
34 lines
876 B
PowerShell
Set-StrictMode -Version Latest
|
|
|
|
function Resolve-ReverseProjectRoot {
|
|
[CmdletBinding()]
|
|
param(
|
|
[AllowEmptyString()]
|
|
[string]$RequestedRoot = ''
|
|
)
|
|
|
|
$root = if ([string]::IsNullOrWhiteSpace($RequestedRoot)) {
|
|
(Get-Location).ProviderPath
|
|
} else {
|
|
$RequestedRoot
|
|
}
|
|
|
|
if ([string]::IsNullOrWhiteSpace($root)) {
|
|
throw 'Unable to resolve the analysis project root.'
|
|
}
|
|
|
|
if (-not (Test-Path -LiteralPath $root)) {
|
|
New-Item -ItemType Directory -Force -Path $root | Out-Null
|
|
}
|
|
if (-not (Test-Path -LiteralPath $root -PathType Container)) {
|
|
throw "Project root is not a directory: $root"
|
|
}
|
|
|
|
$item = Get-Item -LiteralPath $root
|
|
if ($item.PSProvider.Name -ne 'FileSystem') {
|
|
throw "Project root must use the FileSystem provider: $root"
|
|
}
|
|
|
|
return $item.FullName
|
|
}
|