sonarr-repo-only/packages/Unity.2.1.505.2/tools/Utils.psm1

77 lines
4.5 KiB
PowerShell
Raw Normal View History

<EFBFBD><EFBFBD>function Add-ToolFolder([System.String] $folder)
{
$flattenedValue = Get-ExtenderPropertyValue
$allFolders = New-Object "System.Collections.Generic.List``1[System.String]"
if($flattenedValue.Length -gt 0)
{
$allFolders.AddRange($flattenedValue.Split(';'))
}
if( -not $allFolders.Contains($folder) )
{
$allFolders.Add($folder)
$flattenedValue = [System.String]::Join(';', $allFolders.ToArray())
Set-ExtenderPropertyValue($flattenedValue)
}
}
function Remove-ToolFolder([System.String] $folder)
{
$flattenedValue = Get-ExtenderPropertyValue
$allFolders = New-Object "System.Collections.Generic.List``1[System.String]"
if($flattenedValue.Length -gt 0)
{
$allFolders.AddRange($flattenedValue.Split(';'))
}
if( $allFolders.Remove($folder) )
{
$flattenedValue = [System.String]::Join(';', $allFolders.ToArray())
Set-ExtenderPropertyValue($flattenedValue)
}
}
function Get-ExtenderPropertyValue
{
if( $dte.Solution.Globals.VariableExists("EnterpriseLibraryConfigurationToolBinariesPath") -and $dte.Solution.Globals.VariablePersists("EnterpriseLibraryConfigurationToolBinariesPath") )
{
return $dte.Solution.Globals.VariableValue("EnterpriseLibraryConfigurationToolBinariesPath")
}
return ""
}
function Set-ExtenderPropertyValue([System.String] $value)
{
if( [System.String]::IsNullOrWhiteSpace($value) )
{
if( $dte.Solution.Globals.VariableExists("EnterpriseLibraryConfigurationToolBinariesPath") )
{
$dte.Solution.Globals.VariablePersists("EnterpriseLibraryConfigurationToolBinariesPath") = $False
}
}
else
{
$dte.Solution.Globals.VariableValue("EnterpriseLibraryConfigurationToolBinariesPath") = $value
$dte.Solution.Globals.VariablePersists("EnterpriseLibraryConfigurationToolBinariesPath") = $True
}
}
function Get-RelativePath([System.String] $basePath, [System.String] $targetPath)
{
# not a general purpose relative path calculation algorithm
return ($targetPath.Substring($basePath.Length)).TrimStart([System.Io.Path]::DirectorySeparatorChar)
}
function Cleanup
{
}