# encoding: ascii
# api: powershell
# title: Require-Function
# description: This is a bit similar to Python import module. If a function is present, nothing happens, otherwise Path is searched for a file with the functionname and the extension .ps1 and that file is dot sourced
# version: 0.1
# type: function
# license: CC0
# function: Require-Function
# x-poshcode-id: 1617
# x-archived: 2010-02-03T16:13:31
#
#
function Require-Function
{
<#
.SYNOPSIS
Load function when not already loaded
.DESCRIPTION
When a function is not loaded and there is a file <functionname>.ps1 in one of the directories listed
in $env:Path it is dot sourced.
To get the function in your environment you must dot source the Require-Function too.
.NOTES
File Name : Require-Function.ps1
Author : Bernd Kriszio - http://pauerschell.blogspot.com/
.PARAMETER FunctionName
The name of the function you want to import
.EXAMPLE
. Require-Function <any_function_script_in_your_path>
.EXAMPLE
. Require-Function New-ISEFile -verbose
.EXAMPLE
. Require-Function New-ISEFile
.EXAMPLE
. Require-Function unbekanntn -verbose
#>
[cmdletbinding()]
param (
[string] $FunctionName
)
if (! (Test-Path function:$FunctionName))
{
try{
Write-Verbose "Function $FunctionName not loaded"
$cmd = "$($FunctionName).ps1"
#"$cmd"
. $cmd
}
catch
{
"$cmd could not be loaded"
break;
}
Write-Verbose "Function $FunctionName is loaded"
}
else
{
Write-Verbose "Function $FunctionName was loaded"
}
}