ps/Modules/Cole.PowerShell.Developer/Public/Invoke-CallOperatorWithPathAndParameters.ps1
2023-05-30 22:51:22 -07:00

29 lines
877 B
PowerShell

function Invoke-CallOperatorWithPathAndParameters {
<#
.SYNOPSIS
This function is basically just a wrapper for unit-testing purposes.
Used to call a system file with an array of string args.
The best use-case for this is sc.exe execution, or topshelf installers.
.PARAMETER Path
The file path being invoked
.PARAMETER Arguments
This value just gets splatted as passed in.
.OUTPUTS
This function outputs whatever came out of the called function
#>
[CmdletBinding()]
[OutputType([System.Object])]
param(
[Parameter(Mandatory=$true)]
[string]$Path,
[Parameter(Mandatory=$true)]
[string[]]$Arguments
)
# Fun fact: $LASTEXITCODE is set by the past .exe to run in the call stack, not by functions
# So if this sets a $LASTEXITCODE we can test for it in the caller function
(& $Path @Arguments)
}