Merge pull request #1 from steviecoaster/master
Optionally collect additonal metadata from the nuspec.
This commit is contained in:
@@ -9,25 +9,36 @@ Function Get-ChocoPackageMetaData {
|
|||||||
.PARAMETER ChocolateyPackage
|
.PARAMETER ChocolateyPackage
|
||||||
The chocolatey package(s) you wish to extract data from
|
The chocolatey package(s) you wish to extract data from
|
||||||
|
|
||||||
|
.PARAMETER AdditonalInformation
|
||||||
|
Return more information about the package than the default ID and Version
|
||||||
|
|
||||||
.EXAMPLE
|
.EXAMPLE
|
||||||
Get-ChocoPackageMetaData -ChocolateyPackage C:\Packages\googlechrome.nupkg
|
Get-ChocoPackageMetaData -ChocolateyPackage C:\Packages\googlechrome.nupkg
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
Get-ChocoPackageMetaData -ChocolateyPackage C:\Packages\googlechrome.nupkg -AdditionalInformation Owners,Description,ProjectUrl,Dependencies
|
||||||
.NOTES
|
.NOTES
|
||||||
Written by Stephen Valdinger of Chocolatey Software for Dan Franciscus
|
Written by Stephen Valdinger of Chocolatey Software for Dan Franciscus
|
||||||
|
|
||||||
#>
|
#>
|
||||||
|
|
||||||
[cmdletBinding()]
|
[cmdletBinding()]
|
||||||
Param(
|
Param(
|
||||||
[ValidateScript({Test-Path $_})]
|
[ValidateScript({Test-Path $_})]
|
||||||
[String[]]
|
[String[]]
|
||||||
$ChocolateyPackage
|
$ChocolateyPackage,
|
||||||
|
|
||||||
|
[Parameter()]
|
||||||
|
[String[]]
|
||||||
|
[ValidateSet('Authors','Description','ProjectUrl','Owners','Licenseurl','Iconurl','Dependencies')]
|
||||||
|
$AdditionalInformation
|
||||||
)
|
)
|
||||||
|
|
||||||
begin { $null = Add-Type -Assemblyname "System.IO.Compression.Filesystem" }
|
begin { $null = Add-Type -Assemblyname "System.IO.Compression.Filesystem" }
|
||||||
|
|
||||||
process {
|
process {
|
||||||
Foreach($package in $ChocolateyPackage){
|
Foreach($package in $ChocolateyPackage){
|
||||||
$obj = @{}
|
$obj = [ordered]@{}
|
||||||
$entry = [IO.Compression.Zipfile]::OpenRead($package).Entries |
|
$entry = [IO.Compression.Zipfile]::OpenRead($package).Entries |
|
||||||
Where-Object { $_.Name -match "nuspec" }
|
Where-Object { $_.Name -match "nuspec" }
|
||||||
$stream = $entry.Open()
|
$stream = $entry.Open()
|
||||||
@@ -36,6 +47,19 @@ Function Get-ChocoPackageMetaData {
|
|||||||
[xml]$xml = $text
|
[xml]$xml = $text
|
||||||
$obj.Add("Name","$($xml.package.metadata.id)")
|
$obj.Add("Name","$($xml.package.metadata.id)")
|
||||||
$obj.Add("Version","$($xml.package.metadata.version)")
|
$obj.Add("Version","$($xml.package.metadata.version)")
|
||||||
|
|
||||||
|
Foreach($member in $AdditionalInformation){
|
||||||
|
|
||||||
|
if($member -eq 'Dependencies'){
|
||||||
|
$obj.Add("$member",$($xml.package.metadata.dependencies.dependency | Select-Object Id,Version))
|
||||||
|
}
|
||||||
|
|
||||||
|
else{
|
||||||
|
$obj.Add("$member",$($xml.package.metadata.$($member)))
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
$reader.Close()
|
$reader.Close()
|
||||||
$stream.Close()
|
$stream.Close()
|
||||||
[pscustomobject]$obj
|
[pscustomobject]$obj
|
||||||
|
|||||||
Reference in New Issue
Block a user