psget/MRPP_PSGet_Install.xml (21 lines of code) (raw):
<?xml version="1.0" encoding="UTF-8"?>
<meta-runner name="PSGet:: Installer">
<description>Install PS modules via PSGet</description>
<settings>
<parameters>
<param name="mr.PSGet.Module" value="" spec="text description='The name of the module.' display='normal' label='Module:' validationMode='not_empty'" />
<param name="mr.PSGet.Global" value="$true" spec="checkbox checkedValue='$true' description='Installs using PSGet machine/global location' display='normal' label='Global:' uncheckedValue='$false'" />
<param name="mr.PSGet.UseNuGet" value="$false" spec="checkbox checkedValue='$true' description='Install from NuGet' display='normal' label='Use NuGet:' uncheckedValue='$false'" />
<param name="mr.PSGet.Log" value="$false" spec="checkbox checkedValue='$true' description='Determines whether or not messages other than warnings or errors are written to the log.' display='normal' label='Log Messages:' uncheckedValue='$false'" />
<param name="mr.PSGet.Options" value="" spec="text display='normal' label='Options:' description='Any optional arguments to include. [param1=value param2=value]' validationMode='any'" />
</parameters>
<build-runners>
<runner name="PSGet" type="jetbrains_powershell">
<parameters>
<param name="jetbrains_powershell_execution" value="PS1" />
<param name="jetbrains_powershell_noprofile" value="true" />
<param name="jetbrains_powershell_errorToError" value="error" />
<param name="jetbrains_powershell_script_mode" value="CODE" />
<param name="jetbrains_powershell_bitness" value="x86" />
<param name="teamcity.step.mode" value="default" />
<param name="jetbrains_powershell_script_code"><![CDATA[
$PsGetDestinationModulePath = Join-Path "%env.CommonProgramW6432%" "Modules"
$_ErrorActionPreference = $ErrorActionPreference
$ErrorActionPreference = "SilentlyContinue"
$(New-Object Net.WebClient).DownloadString("http://psget.net/GetPsGet.ps1") | iex -wa:SilentlyContinue
$ErrorActionPreference = $_ErrorActionPreference
function Build-Arguments {
$arguments = @{}
if(%mr.PSGet.UseNuGet%) {
$arguments.NuGetPackageId = "%mr.PSGet.Module%"
} else {
$arguments.Module = "%mr.PSGet.Module%"
}
$arguments.Global = %mr.PSGet.Global%
# PackageVersion=2.3.1 NugetSource=http://example.com
if([String]::IsNullOrWhiteSpace("%mr.PSGet.Options%") -eq $false) {
$("%mr.PSGet.Options%" -split ' ') | Foreach-Object {
$argument = $($_ -split '=')
if($argument -is [Array]) {
$key = $($argument[0])
$value = $($argument[1])
$arguments.$key = $value
} else {
# flag argument
$arguments.$argument = $true
}
}
}
return $arguments
}
$arguments = Build-Arguments
if(%mr.PSGet.Log%) {
Write-Host "Installing module: %mr.PSGet.Module%"
Write-Host "using arguments: " -NoNewline
$arguments.Keys | Foreach-Object {
Write-Host $("{0}={1} " -f $_, $arguments.$_) -NoNewline
} -End {Write-Host ""}
}
Install-Module @arguments -ErrorAction:Stop
]]></param>
</parameters>
</runner>
</build-runners>
<requirements />
</settings>
</meta-runner>