saltstack/salt

View on GitHub
pkg/windows/modules/start-process-and-test-exitcode.psm1

Summary

Maintainability
Test Coverage
Function Start_Process_and_test_exitcode {

    # This function is a wrapper for Start-Process that checks the exitcode
    # It receives 3 parameters:
    #    $fun   - the process that shall be started
    #    $args  - the the arguments of $fun
    #    $descr - the short description shown in the case of an error

    Param(
        [Parameter(Mandatory=$true)] [String] $fun,
        [Parameter(Mandatory=$true)] [String] $args,
        [Parameter(Mandatory=$true)] [String] $descr
    )

    Begin { Write-Host "Executing Command: $fun $args" }

    Process {
        $p = Start-Process "$fun" -ArgumentList "$args" -Wait -PassThru
        If ($p.ExitCode -ne 0) {
            Write-Error "$descr returned exitcode $p.ExitCode."
            exit $p.ExitCode
        }
    }

    End { Write-Host "Finished Executing Command: $fun $args" }
}