| <# | |
| .Synopsis | |
| Compiles and signs a catalog file. | |
| .Description | |
| Given the CDF definition file, builds and signs a catalog. | |
| .Parameter catalog | |
| The path to the catalog definition file to compile and | |
| sign. It is assumed that the .cat file will be the same | |
| name with a new extension. | |
| .Parameter outfile | |
| The path to move the built .cat file to (optional). | |
| .Parameter description | |
| The description to add to the signature (optional). | |
| .Parameter certname | |
| The name of the certificate to sign with (optional). | |
| .Parameter certsha1 | |
| The SHA1 hash of the certificate to sign with (optional). | |
| #> | |
| param( | |
| [Parameter(Mandatory=$true)][string]$catalog, | |
| [string]$outfile, | |
| [switch]$sign, | |
| [string]$description, | |
| [string]$certname, | |
| [string]$certsha1, | |
| [string]$certfile | |
| ) | |
| $tools = $script:MyInvocation.MyCommand.Path | Split-Path -parent; | |
| Import-Module $tools\sdktools.psm1 -WarningAction SilentlyContinue -Force | |
| Set-Alias MakeCat (Find-Tool "makecat.exe") -Scope Script | |
| MakeCat $catalog | |
| if (-not $?) { | |
| throw "Catalog compilation failed" | |
| } | |
| if ($sign) { | |
| Sign-File -certname $certname -certsha1 $certsha1 -certfile $certfile -description $description -files @($catalog -replace 'cdf$', 'cat') | |
| } | |
| if ($outfile) { | |
| Split-Path -Parent $outfile | ?{ $_ } | %{ mkdir -Force $_; } | |
| Move-Item ($catalog -replace 'cdf$', 'cat') $outfile | |
| } |