Files
reverse-skill/skills/scripts/lib/WorkRoot.ps1
2026-08-08 18:32:33 +08:00

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
}