65 lines
1.7 KiB
PowerShell
65 lines
1.7 KiB
PowerShell
<#
|
|
entry.ps1 detects the first argument as command, and then
|
|
select the corresponding execution logic
|
|
#>
|
|
|
|
$ErrorActionPreference = 'Stop'
|
|
$WarningPreference = 'SilentlyContinue'
|
|
$VerbosePreference = 'SilentlyContinue'
|
|
$DebugPreference = 'SilentlyContinue'
|
|
$InformationPreference = 'SilentlyContinue'
|
|
|
|
# to support functionality in linux agent to bypass run.sh using --
|
|
if ($args[0] -eq "--") {
|
|
$args = $args[1..($args.Length-1)]
|
|
}
|
|
|
|
function Run-PowerShell
|
|
{
|
|
param (
|
|
[parameter(Mandatory = $false)] [string[]]$ArgumentList
|
|
)
|
|
|
|
try {
|
|
if ($ArgumentList) {
|
|
Start-Process -NoNewWindow -Wait -FilePath "powershell" -ArgumentList $ArgumentList
|
|
} else {
|
|
Start-Process -NoNewWindow -Wait -FilePath "powershell"
|
|
}
|
|
} catch {
|
|
$errMsg = $_.Exception.Message
|
|
if ($errMsg -like "*This command cannot be run due to the error: *") {
|
|
if ($ArgumentList) {
|
|
Start-Process -NoNewWindow -Wait -FilePath "pwsh" -ArgumentList $ArgumentList
|
|
} else {
|
|
Start-Process -NoNewWindow -Wait -FilePath "pwsh"
|
|
}
|
|
} else {
|
|
throw $_
|
|
}
|
|
}
|
|
}
|
|
|
|
$psArgs = $null
|
|
$componentScript = "$PSScriptRoot\$($args[0]).ps1"
|
|
if (-not (Test-Path -ErrorAction Ignore -Path $componentScript))
|
|
{
|
|
if ($env:CATTLE_AGENT_CONNECT -eq "true")
|
|
{
|
|
$psArgs = @("-NoLogo", "-NonInteractive", "-File", "$PSScriptRoot\execute.ps1") + $args[0..$args.Length]
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$psArgs = @("-NoLogo", "-NonInteractive", "-File", "$PSScriptRoot\$($args[0]).ps1") + $args[1..$args.Length]
|
|
}
|
|
|
|
|
|
if ($psArgs)
|
|
{
|
|
Run-PowerShell -ArgumentList $psArgs
|
|
exit 0
|
|
}
|
|
|
|
Run-PowerShell
|