|
- [CmdletBinding(SupportsShouldProcess)]param(
- [ArgumentCompleter({ param (
- $commandName,
- $parameterName,
- $wordToComplete,
- $commandAst,
- $fakeBoundParameters
- )
- [FunctionName]::_GetValidValues($wordToComplete,$true)
- })]
- [string[]]$ImportFunction,
- [switch]$ForceImport,
- [Parameter(Position = 0, ValueFromRemainingArguments = $true)]
- [ArgumentCompleter({ param (
- $commandName,
- $parameterName,
- $wordToComplete,
- $commandAst,
- $fakeBoundParameters
- )
- [MyScript]::_GetValidValues($wordToComplete,$false)
- })]
- [string[]]$ScriptName
- )
-
- $local:ScriptPaths = @()
- foreach( $local:p in $ImportFunction ) {
- $local:f = Get-Command $p -Type Function
- if( $f ) {
- $local:sp = Join-Path $MyPSScriptRoot "$p`.ps1"
- if( $ForceImport -or -not (Test-Path $sp) ) {
- Export-FunctionSource $p -NoHeader > $sp
- } elseif ( -not $ForceImport ) {
- throw "$p already exists in Script, to import the function again, use the -Force"
- }
- $ScriptPaths += $sp
- }
- }
- foreach( $local:p in $ScriptName ) {
- $local:sp = Join-Path $MyPSScriptRoot "$p`.ps1"
- $ScriptPaths += $sp
- }
-
- if( -not $ScriptPaths ) {
- $ScriptPaths += $MyPSScriptRoot
- }
-
- Edit-TextFile $ScriptPaths
-
- Get-Command Reload-MyScripts -ErrorAction SilentlyContinue |
- ForEach-Object { . $_.Definition }
|