ProcessModule() display a message if action does not exist

This commit is contained in:
Yorick Barbanneau 2018-03-25 21:14:03 +02:00
parent c2733d133c
commit 27614e531d

View file

@ -486,17 +486,26 @@ function ProcessModuleFile {
foreach( $p in $_.psobject.properties.name ){
$current_action[$p] = $_.$p
}
if ( -not $current_action.ContainsKey('action') ) {
Write-Host -ForegroundColor Red "`tError : action not found"
return
}
# If action content a file element, need to test if file exist
if ( $current_action.ContainsKey('file')) {
$action_file = $(Get-ChildItem $path).DirectoryName + "\" + $(Get-ChildItem $path).BaseName + "\" + $current_action.file
if ( -not (Test-Path $action_file) ) {
Write-Host -ForegroundColor Red "`tError in $($mod.name) : file $action_file not found"
Write-Host -ForegroundColor Red "`tError in $($mod.name) : file $action_file not found`n"
return
}
$current_action.file = $action_file
}
# Invoke function
Invoke-Expression "$($_.action) `$current_action"
if (Get-Command $($_.action) -ErrorAction SilentlyContinue ){
Invoke-Expression "$($_.action) `$current_action"
}
else {
Write-Host -ForegroundColor Red "`tError in $($mod.name) : action $($_.action) not exist"
}
}
}