You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.4 KiB
46 lines
1.4 KiB
4 months ago
|
<#
|
||
|
.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
|
||
|
}
|