77 lines
4.5 KiB
PowerShell
77 lines
4.5 KiB
PowerShell
|
<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
|
|||
|
{
|
|||
|
}
|