OCram85/DroneHelper
OCram85
/
DroneHelper
Archived
1
0
Fork 0
This repository has been archived on 2023-10-10. You can view files and clone it, but cannot push or open issues or pull requests.
DroneHelper/src/Deps/Install-ModuleDependency.ps1

75 lines
2.3 KiB
PowerShell

function Install-ModuleDependency {
<#
.SYNOPSIS
Install required modules of the module manifest file.
.DESCRIPTION
Use this cmdlet to install required modules of the module manifest file.
.INPUTS
[None]
.OUTPUTS
[None]
.EXAMPLE
Install-ModuleDependency
.NOTES
#>
[CmdletBinding()]
#[OutputType([String])]
param ()
begin {
}
process {
$Repo = Get-RepoPath
$ManifestContent = Import-PowerShellDataFile -Path $Repo.Src.Manifest.Item.FullName
if ($ManifestContent.RequiredModules) {
foreach ($Module in $ManifestContent.RequiredModules) {
if ($Module.RequiredVersion) {
$ParamsInstallModule = @{
Name = $Module.ModuleName
Scope = 'AllUsers'
RequiredVersion = $Module.RequiredVersion
Force = $true
AllowClobber = $true
Verbose = $VerbosePreference
ErrorAction = 'Stop'
}
}
else {
$ParamsInstallModule = @{
Name = $Module.ModuleName
Scope = 'AllUsers'
MinimumVersion = $Module.ModuleVersion
Force = $true
AllowClobber = $true
Verbose = $VerbosePreference
ErrorAction = 'Stop'
}
}
try {
Install-Module @ParamsInstallModule
$Message = 'Module <{0}> successfully installed' -f $Module.ModuleName
Write-Verbose -Message $Message
}
catch {
$Message = 'Module <{0}> could not be installed! ' -f $Module.ModuleName
$Message += $_.Exception.Message
Write-Error -Message $Message -ErrorAction 'Stop'
}
}
}
else {
Write-Verbose -Message 'no required modules found...'
}
}
end {
}
}