package defintion improvements

Added CmdletExists and AppExeExists conditions
Cleanup of existing package description files
This commit is contained in:
lksz 2021-04-16 17:07:00 +00:00
parent 2b51f37cb7
commit c9d13f5c4d
8 changed files with 20 additions and 27 deletions

View file

@ -23,6 +23,7 @@ class Packagesz { #: System.Management.Automation.IValidateSetValuesGenerator {
$local:valid = $Package.Condition[0].Logic -notin ([szLogic]::or, [szLogic]::ornot)
$local:currentSys = [SystemName]::_GetValidValues('',$true,$true);
$local:hostname = $(hostname)
$local:allCmdlets = Get-Command | Select-Object -ExpandProperty Name
$local:username = $( if( $env:USER ) { $env:USER } else { $env:USERNAME } )
@ -39,6 +40,14 @@ class Packagesz { #: System.Management.Automation.IValidateSetValuesGenerator {
if( $v -and $c.Username ) {
$v = $v -and $($c.Username | Where-Object { $username -match $_ })
}
if( $v -and $c.CmdletExists ) {
$v = $v -and -not $($c.CmdletExists | Where-Object { $allCmdlets -notcontains $_ })
}
if( $v -and $c.AppExeExists ) {
$v = $v -and -not $($c.AppExeExists | Where-Object {
-not ( Get-Command $_ -Type Application -ErrorAction SilentlyContinue )
})
}
if( $v -and $c.custom ) {
$v = $v -and ([bool]$(& ([ScriptBlock]::Create($c.custom))))
}