mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-06 13:22:48 +00:00
Implemented support for Repository selection when installing module (#39909)
* Implemented support for Repository selection when installing module * Fixed AllowClobber check * Fixing missing AllowClobber argument * Fixed missing -Force switch * Test installing package from custom repo * Added custom repo variables * Fixed repo registration * Modified output check * Modified output check * Adding debug output * Modified update handling * Fixed output check * Added missing PowerShellGet 1.6.0 install * Added error handling * Modified test output check * Fixing output check * Fixing output filter * Implemented registering custom repo * Fixing registering custom repo * Fixing registering custom repo * Fixing registering custom repo * Tweaked module to shorten execution time * Removed installing PowerShellGet 1.6.0 * Re-added Install-NugetProvider
This commit is contained in:
committed by
Jordan Borean
parent
8deced3e04
commit
7d2012fdd7
@@ -108,6 +108,7 @@ Function Install-PsModule {
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$Name,
|
||||
[string]$Repository,
|
||||
[bool]$AllowClobber,
|
||||
[bool]$CheckMode
|
||||
)
|
||||
@@ -117,15 +118,27 @@ Function Install-PsModule {
|
||||
else {
|
||||
try{
|
||||
# Install NuGet Provider if needed
|
||||
Install-NugetProvider -CheckMode $CheckMode
|
||||
Install-NugetProvider -CheckMode $CheckMode;
|
||||
|
||||
# Check Powershell Version (-AllowClobber was introduced in early version only)
|
||||
if ($PsVersion.Minor -ge 1){
|
||||
Install-Module -Name $Name -Force -ErrorAction Stop -Whatif:$CheckMode -AllowClobber:$AllowClobber | out-null
|
||||
$ht = @{
|
||||
Name = $Name;
|
||||
WhatIf = $CheckMode;
|
||||
ErrorAction = "Stop";
|
||||
Force = $true;
|
||||
};
|
||||
|
||||
# If specified, use repository name to select module source
|
||||
if ($Repository) {
|
||||
$ht["Repository"] = "$Repository";
|
||||
}
|
||||
else {
|
||||
Install-Module -Name $Name -Force -ErrorAction Stop -Whatif:$CheckMode | out-null
|
||||
|
||||
# Check Powershell Version (-AllowClobber was introduced in PowerShellGet 1.6.0)
|
||||
if ("AllowClobber" -in ((Get-Command PowerShellGet\Install-Module | Select -ExpandProperty Parameters).Keys)) {
|
||||
$ht['AllowClobber'] = $AllowClobber;
|
||||
}
|
||||
|
||||
Install-Module @ht | out-null;
|
||||
|
||||
$result.output = "Module $($Name) installed"
|
||||
$result.changed = $true
|
||||
}
|
||||
@@ -174,7 +187,8 @@ if ($state -eq "present") {
|
||||
else {
|
||||
$ErrorMessage = "Repository Name and Url are mandatory if you want to add a new repository"
|
||||
}
|
||||
Install-PsModule -Name $Name -CheckMode $check_mode -AllowClobber $allow_clobber
|
||||
|
||||
Install-PsModule -Name $Name -Repository $repo -CheckMode $check_mode -AllowClobber $allow_clobber;
|
||||
}
|
||||
else {
|
||||
if ($repo) {
|
||||
|
||||
@@ -30,10 +30,10 @@ options:
|
||||
default: 'no'
|
||||
repository:
|
||||
description:
|
||||
- Name of the custom repository to register.
|
||||
- Name of the custom repository to register or use.
|
||||
url:
|
||||
description:
|
||||
- URL of the custom repository.
|
||||
- URL of the custom repository to register.
|
||||
state:
|
||||
description:
|
||||
- If C(present) a new module is installed.
|
||||
@@ -61,6 +61,12 @@ EXAMPLES = '''
|
||||
url: https://myrepo.com
|
||||
state: present
|
||||
|
||||
- name: Add a powershell module from a specific repository
|
||||
win_psmodule:
|
||||
name: PowershellModule
|
||||
repository: MyRepository
|
||||
state: present
|
||||
|
||||
- name: Remove a powershell module
|
||||
win_psmodule:
|
||||
name: PowershellModule
|
||||
|
||||
Reference in New Issue
Block a user