mirror of
https://github.com/Icinga/icinga-powershell-framework.git
synced 2025-12-21 07:10:15 -05:00
Improved framework loading speed and overhead
This commit is contained in:
parent
1c0844e5e7
commit
5499ff399b
1 changed files with 10 additions and 4 deletions
|
|
@ -13,6 +13,7 @@ function Use-Icinga()
|
||||||
{
|
{
|
||||||
# This function will allow us to load this entire module including possible
|
# This function will allow us to load this entire module including possible
|
||||||
# actions, making it available within our shell environment
|
# actions, making it available within our shell environment
|
||||||
|
Import-IcingaLib '\' -Init;
|
||||||
}
|
}
|
||||||
|
|
||||||
function Import-IcingaLib()
|
function Import-IcingaLib()
|
||||||
|
|
@ -27,9 +28,16 @@ function Import-IcingaLib()
|
||||||
[String]$Lib,
|
[String]$Lib,
|
||||||
# The Force Reload will remove the module in case it's loaded and reload it to track
|
# The Force Reload will remove the module in case it's loaded and reload it to track
|
||||||
# possible development changes without having to create new PowerShell environments
|
# possible development changes without having to create new PowerShell environments
|
||||||
[Switch]$ForceReload
|
[Switch]$ForceReload,
|
||||||
|
[switch]$Init
|
||||||
);
|
);
|
||||||
|
|
||||||
|
# This is just to only allow a global loading of the module. Import-IcingaLib is ignored on every other
|
||||||
|
# location. It is just there to give a basic idea within commands, of which functions are used
|
||||||
|
if ($Init -eq $FALSE) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
[string]$directory = Join-Path -Path $PSScriptRoot -ChildPath 'lib\';
|
[string]$directory = Join-Path -Path $PSScriptRoot -ChildPath 'lib\';
|
||||||
[string]$module = Join-Path -Path $directory -ChildPath $Lib;
|
[string]$module = Join-Path -Path $directory -ChildPath $Lib;
|
||||||
[string]$moduleName = '';
|
[string]$moduleName = '';
|
||||||
|
|
@ -38,6 +46,7 @@ function Import-IcingaLib()
|
||||||
|
|
||||||
# Load modules from directory
|
# Load modules from directory
|
||||||
if ((Test-Path $module -PathType Container)) {
|
if ((Test-Path $module -PathType Container)) {
|
||||||
|
|
||||||
Get-ChildItem -Path $module -Recurse -Filter *.psm1 |
|
Get-ChildItem -Path $module -Recurse -Filter *.psm1 |
|
||||||
ForEach-Object {
|
ForEach-Object {
|
||||||
[string]$modulePath = $_.FullName;
|
[string]$modulePath = $_.FullName;
|
||||||
|
|
@ -344,9 +353,6 @@ function Get-Icinga-Object()
|
||||||
return $Icinga2;
|
return $Icinga2;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Automaticly load all library modules
|
|
||||||
Import-IcingaLib '\';
|
|
||||||
|
|
||||||
# Initialise base configuration for our module
|
# Initialise base configuration for our module
|
||||||
<#
|
<#
|
||||||
$Icinga2 = & (Join-Path -Path $PSScriptRoot -ChildPath '\core\init.ps1') `
|
$Icinga2 = & (Join-Path -Path $PSScriptRoot -ChildPath '\core\init.ps1') `
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue