mirror of
https://github.com/Icinga/icinga-powershell-framework.git
synced 2026-02-02 19:59:31 -05:00
Remove legacy import from files
This commit is contained in:
parent
6a82bf0baf
commit
e9ba8747f8
6 changed files with 15 additions and 161 deletions
|
|
@ -24,6 +24,7 @@ Released closed milestones can be found on [GitHub](https://github.com/Icinga/ic
|
|||
* [#314](https://github.com/Icinga/icinga-powershell-framework/pull/314) Adds support to configure on which address TCP sockets are created on, defaults to `loopback` interface
|
||||
* [#316](https://github.com/Icinga/icinga-powershell-framework/pull/316) The reconfigure menu was previously present inside the Icinga Agent sub-menu and is now moved to the main installation menu for the Management Console
|
||||
* [#318](https://github.com/Icinga/icinga-powershell-framework/pull/318) We always enforce the Icinga Framework Code caching now and ship a plain file to build the cache on first loading
|
||||
* [#322](https://github.com/Icinga/icinga-powershell-framework/pull/322) Remove legacy import feature from Framework and replace it with a dummy function, as no longer required by Icinga for Windows
|
||||
|
||||
## 1.5.2 (2021-07-09)
|
||||
|
||||
|
|
|
|||
|
|
@ -32,11 +32,6 @@ function Use-Icinga()
|
|||
$global:Icinga.Add('Minimal', $TRUE);
|
||||
}
|
||||
|
||||
# If we load the minimal Framework files, we have to ensure our enums are loaded
|
||||
Import-Module ([string]::Format('{0}\lib\icinga\exception\Icinga_IcingaExceptionEnums.psm1', $PSScriptRoot)) -Global;
|
||||
Import-Module ([string]::Format('{0}\lib\icinga\enums\Icinga_IcingaEnums.psm1', $PSScriptRoot)) -Global;
|
||||
Import-Module ([string]::Format('{0}\lib\core\logging\Icinga_EventLog_Enums.psm1', $PSScriptRoot)) -Global;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -46,12 +41,6 @@ function Use-Icinga()
|
|||
Use-IcingaPlugins;
|
||||
}
|
||||
|
||||
# This function will allow us to load this entire module including possible
|
||||
# actions, making it available within our shell environment
|
||||
# First load our custom modules
|
||||
Import-IcingaLib '\' -Init -Custom;
|
||||
Import-IcingaLib '\' -Init;
|
||||
|
||||
if ($LibOnly -eq $FALSE) {
|
||||
$global:IcingaThreads = [hashtable]::Synchronized(@{});
|
||||
$global:IcingaThreadContent = [hashtable]::Synchronized(@{});
|
||||
|
|
@ -107,150 +96,27 @@ function Get-IcingaFrameworkCodeCacheFile()
|
|||
return (Join-Path -Path (Get-IcingaCacheDir) -ChildPath 'framework_cache.psm1');
|
||||
}
|
||||
|
||||
function Write-IcingaFrameworkCodeCache()
|
||||
{
|
||||
Import-IcingaLib '\' -Init -CompileCache;
|
||||
}
|
||||
|
||||
function Import-IcingaLib()
|
||||
{
|
||||
param(
|
||||
[String]$Lib,
|
||||
# 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
|
||||
[Switch]$ForceReload,
|
||||
[switch]$Init,
|
||||
[switch]$Custom,
|
||||
[switch]$WriteManifests,
|
||||
[switch]$CompileCache
|
||||
);
|
||||
|
||||
# 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;
|
||||
}
|
||||
|
||||
$CacheFile = Get-IcingaFrameworkCodeCacheFile;
|
||||
|
||||
if ($CompileCache -eq $FALSE) {
|
||||
Import-Module 'icinga-powershell-framework' -Global -Force;
|
||||
return;
|
||||
}
|
||||
|
||||
[array]$ImportModules = @();
|
||||
[array]$RemoveModules = @();
|
||||
|
||||
if ($Custom) {
|
||||
[string]$directory = Join-Path -Path $PSScriptRoot -ChildPath 'custom\';
|
||||
} else {
|
||||
[string]$directory = Join-Path -Path $PSScriptRoot -ChildPath 'lib\';
|
||||
}
|
||||
[string]$module = Join-Path -Path $directory -ChildPath $Lib;
|
||||
[string]$moduleName = '';
|
||||
|
||||
$ListOfLoadedModules = Get-Module | Select-Object Name;
|
||||
|
||||
# Load modules from directory
|
||||
if ((Test-Path $module -PathType Container)) {
|
||||
|
||||
Get-ChildItem -Path $module -Recurse -Filter *.psm1 |
|
||||
ForEach-Object {
|
||||
[string]$modulePath = $_.FullName;
|
||||
$moduleName = $_.Name.Replace('.psm1', '');
|
||||
|
||||
if ($ListOfLoadedModules -like "*$moduleName*") {
|
||||
if ($ForceReload) {
|
||||
$RemoveModules += $moduleName;
|
||||
}
|
||||
$ImportModules += $modulePath;
|
||||
} else {
|
||||
$ImportModules += $modulePath;
|
||||
if ($WriteManifests) {
|
||||
Publish-IcingaModuleManifest -Module $moduleName;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$module = $module.Replace('.psm1', ''); # Cut possible .psm1 ending
|
||||
$moduleName = $module.Split('\')[-1]; # Get the last element
|
||||
|
||||
if ($ForceReload) {
|
||||
if ($ListOfLoadedModules -Like "*$moduleName*") {
|
||||
$RemoveModules += $moduleName;
|
||||
}
|
||||
}
|
||||
|
||||
$ImportModules += ([string]::Format('{0}.psm1', $module));
|
||||
if ($WriteManifests) {
|
||||
Publish-IcingaModuleManifest -Module $moduleName;
|
||||
}
|
||||
}
|
||||
|
||||
if ($RemoveModules.Count -ne 0) {
|
||||
Remove-Module $RemoveModules;
|
||||
}
|
||||
|
||||
if ($ImportModules.Count -ne 0) {
|
||||
|
||||
if ($CompileCache) {
|
||||
$CacheContent = '';
|
||||
foreach ($module in $ImportModules) {
|
||||
$Content = Get-Content $module -Raw;
|
||||
$CacheContent += $Content + "`r`n";
|
||||
}
|
||||
|
||||
$CacheContent += $Content + "Export-ModuleMember -Function @( '*' )";
|
||||
Set-Content -Path $CacheFile -Value $CacheContent;
|
||||
} else {
|
||||
Import-Module $ImportModules -Global;
|
||||
}
|
||||
}
|
||||
# Do nothing, just leave it here as compatibility layer until we
|
||||
# cleaned every other repository
|
||||
}
|
||||
|
||||
function Publish-IcingaModuleManifest()
|
||||
function Write-IcingaFrameworkCodeCache()
|
||||
{
|
||||
param(
|
||||
[string]$Module
|
||||
);
|
||||
[string]$CacheFile = Get-IcingaFrameworkCodeCacheFile;
|
||||
[string]$directory = Join-Path -Path $PSScriptRoot -ChildPath 'lib\';
|
||||
[string]$CacheContent = '';
|
||||
|
||||
[string]$ManifestDir = Join-Path -Path $PSScriptRoot -ChildPath 'manifests';
|
||||
[string]$ModuleFile = [string]::Format('{0}.psd1', $Module);
|
||||
[string]$PSDFile = Join-Path -Path $ManifestDir -ChildPath $ModuleFile;
|
||||
|
||||
if (Test-Path $PSDFile) {
|
||||
return;
|
||||
}
|
||||
|
||||
New-ModuleManifest -Path $PSDFile -ModuleVersion 1.0 -Author $env:USERNAME -CompanyName 'Icinga GmbH' -Copyright '(c) 2019 Icinga GmbH. All rights reserved.' -PowerShellVersion 4.0;
|
||||
$Content = Get-Content $PSDFile;
|
||||
$NewContent = @();
|
||||
|
||||
foreach ($line in $Content) {
|
||||
if ([string]::IsNullOrEmpty($line)) {
|
||||
continue;
|
||||
# Load modules from directory
|
||||
Get-ChildItem -Path $directory -Recurse -Filter '*.psm1' |
|
||||
ForEach-Object {
|
||||
$CacheContent += (Get-Content -Path $_.FullName -Raw);
|
||||
$CacheContent += "`r`n";
|
||||
}
|
||||
|
||||
if ($line[0] -eq '#') {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($line.Contains('#')) {
|
||||
$line = $line.Substring(0, $line.IndexOf('#'));
|
||||
}
|
||||
|
||||
$tmpLine = $line;
|
||||
while ($tmpLine.Contains(' ')) {
|
||||
$tmpLine = $tmpLine.Replace(' ', '');
|
||||
}
|
||||
if ([string]::IsNullOrEmpty($tmpLine)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$NewContent += $line;
|
||||
}
|
||||
|
||||
Set-Content -Path $PSDFile -Value $NewContent;
|
||||
$CacheContent += "Export-ModuleMember -Function @( '*' )";
|
||||
Set-Content -Path $CacheFile -Value $CacheContent;
|
||||
}
|
||||
|
||||
function Publish-IcingaEventlogDocumentation()
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
Import-IcingaLib core\tools;
|
||||
|
||||
function ConvertFrom-TimeSpan()
|
||||
{
|
||||
param (
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
Import-IcingaLib core\tools;
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Converts unit to seconds.
|
||||
|
|
|
|||
|
|
@ -7,8 +7,7 @@ function New-IcingaCheckCommand()
|
|||
'Critical',
|
||||
'[switch]NoPerfData',
|
||||
'[int]Verbose'
|
||||
),
|
||||
[array]$ImportLib = @()
|
||||
)
|
||||
);
|
||||
|
||||
if ([string]::IsNullOrEmpty($Name) -eq $TRUE) {
|
||||
|
|
@ -49,12 +48,6 @@ function New-IcingaCheckCommand()
|
|||
|
||||
New-Item -Path $ModuleFolder -ItemType Directory | Out-Null;
|
||||
|
||||
Add-Content -Path $ScriptFile -Value 'Import-IcingaLib icinga\plugin;';
|
||||
|
||||
foreach ($Library in $ImportLib) {
|
||||
Add-Content -Path $ScriptFile -Value "Import-IcingaLib $Library;";
|
||||
}
|
||||
|
||||
Add-Content -Path $ScriptFile -Value '';
|
||||
Add-Content -Path $ScriptFile -Value "function $CommandName()";
|
||||
Add-Content -Path $ScriptFile -Value "{";
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
Import-IcingaLib icinga\plugin;
|
||||
|
||||
function Get-IcingaHelpThresholds()
|
||||
{
|
||||
param (
|
||||
|
|
|
|||
Loading…
Reference in a new issue