lib/Providers.ps1
Function Import-TMCProvider { param( [Parameter(Mandatory = $true, ValueFromPipeline = $true, Position = 0)] [String]$Provider, [Parameter(Mandatory = $false)] [Switch]$Force ) ## Get the PS module Root folder $TMProviderModuleName = 'TMConsole.Provider.' + ($Provider -replace ' - ', '.' -replace ' ', '.') ## Get the list of installed provider modules if ($Force) { $InstalledProviderModules = @((Get-Module -Name 'TMConsole.Provider.*' -ListAvailable).Name) } else { $InstalledProviderModules = Get-TMConsoleSetting -Name 'InstalledProviderModules' } ## If the Module is not installed if ($TMProviderModuleName -notin $InstalledProviderModules) { ## Attempt the Installation of the module $InstalledModule = Install-Module -Name $TMProviderModuleName -ErrorAction SilentlyContinue ## If the Module Installation was unsuccessful if (-Not $InstalledModule) { Write-Warning ('Required Module: ' + $TMProviderModuleName + ' is not installed, and installation failed.') return } else { Set-TMConsoleSetting -Name 'InstalledProviderModules' -Value ($InstalledProviderModules + $TMProviderModuleName) } } ## Import the module Import-Module $TMProviderModuleName -ErrorAction 'SilentlyContinue' } |