Public/Get-PSSlackConfig.ps1
Function Get-PSSlackConfig { <# .SYNOPSIS Get PSSlack module configuration. .DESCRIPTION Get PSSlack module configuration .PARAMETER Source Get the config data from either... PSSlack: the live module variable used for command defaults PSSlack.xml: the serialized PSSlack.xml that loads when importing the module Defaults to PSSlack .PARAMETER Path If specified, read config from this XML file. Defaults to PSSlack.xml in the user temp folder on Windows, or .psslack in the user's home directory on Linux/macOS. .FUNCTIONALITY Slack #> [cmdletbinding(DefaultParameterSetName = 'source')] param( [parameter(ParameterSetName='source')] [ValidateSet("PSSlack","PSSlack.xml")] $Source = "PSSlack", [parameter(ParameterSetName='path')] [parameter(ParameterSetName='source')] $Path = $script:_PSSlackXmlpath ) if($PSCmdlet.ParameterSetName -eq 'source' -and $Source -eq "PSSlack" -and -not $PSBoundParameters.ContainsKey('Path')) { $Script:PSSlack } else { function Decrypt { param($String) if($String -is [System.Security.SecureString]) { [System.Runtime.InteropServices.marshal]::PtrToStringAuto( [System.Runtime.InteropServices.marshal]::SecureStringToBSTR( $string)) } } Import-Clixml -Path $Path | Select-Object -Property ArchiveUri, @{l='Uri';e={Decrypt $_.Uri}}, @{l='Token';e={Decrypt $_.Token}}, Proxy, MapUser, ForceVerbose } } |