PowerShell_Scripts/Reload-MyScripts.ps1

38 regels
1.3 KiB
PowerShell

[CmdletBinding(SupportsShouldProcess)]param()
$local:myAliases = [ordered]@{}
$myAliases.sudo = 'Invoke-Sudo'
$myAliases.vi = 'Edit-TextFile'
$myAliases.vim = 'Edit-TextFile'
$myAliases.nvim = 'Edit-TextFile'
$myAliases.nvim = 'Edit-TextFile'
$myAliases.l = 'ls.ps1'
$myAliases.ll = 'ls.ps1'
#######################################################################
$local:IsVerbose = [bool]($PSBoundParameters['Verbose'])
$local:MyAliasScope = 1
$local:oldAliases = . Get-MyAliases
$oldAliases = Get-Alias -Scope $MyAliasScope |
Where-Object Name -in $($oldAliases.Name + $myAliases.Keys)
if( $oldAliases -and $IsVerbose ) {
Write-Verbose "Removing: $($oldAliases.Name -join ', ')"
}
$oldAliases | Remove-Alias -Scope $MyAliasScope
Get-ChildItem (Join-Path $MyPSScriptRoot '*.ps1') |
ForEach-Object {
Set-Alias $($_.BaseName) $_.FullName -Scope $MyAliasScope
}
foreach( $local:alias in $myAliases.Keys ) {
Set-Alias -Name $alias -Value $myAliases[$alias] -Description '#MyAlias' -Scope $MyAliasScope
}
if( $(. Get-ScopeDepth) -gt 0 ) { Write-Host -ForegroundColor Red "Try sourcing Reload-MyScripts instead of just running it" }
Get-ChildItem $(Join-Path $MyPSScriptRoot profile.d) -Filter '*.ps1' | ForEach-Object { ". '$($_.FullName)';" } | Invoke-Expression