Only install PowerShell module if necessary

This commit is contained in:
Manuel Thalmann 2024-08-27 01:25:32 +02:00
parent cb24c6bf17
commit 1ed75d314e
2 changed files with 19 additions and 2 deletions

View file

@ -103,3 +103,18 @@ function Test-PSPackage {
[bool] (Get-Package $Name -ErrorAction SilentlyContinue);
}
<#
.SYNOPSIS
Checks whether a module with the specified name is installed.
.PARAMETER Name
The name of the module to check.
#>
function Test-PSModule {
param(
[string] $Name
)
[bool](Get-Module -ListAvailable $Name -ErrorAction SilentlyContinue);
}

View file

@ -179,9 +179,11 @@ $null = New-Module {
};
}
Install-Module -Scope AllUsers -AcceptLicense -Force $module[0] @parameters;
if (-not (Test-PSModule $module[0])) {
Install-Module -Scope AllUsers -AcceptLicense -Force -AllowClobber $module[0] @parameters;
Import-Module $module[0];
}
}
. "$PSScriptRoot/../Software/PinnedItem/Manage.ps1";
};