
All dc... commands are now based on Invoke-DockerCompose. dco is aliased to Invoke-DockerCompose. dco_ is aliased to the docker-compose binary. '&' and '!' shorthand introduced to dco to execut in bg as job and wait for all bg jobs to complete respectively.
54 lines
1.7 KiB
PowerShell
54 lines
1.7 KiB
PowerShell
[CmdletBinding(SupportsShouldProcess)]param(
|
|
[ArgumentCompleter({ param (
|
|
$commandName,
|
|
$parameterName,
|
|
$wordToComplete,
|
|
$commandAst,
|
|
$fakeBoundParameters
|
|
)
|
|
[DockerComposeDirs]::_GetValidValues($wordToComplete,$true)
|
|
})]
|
|
[string[]]$ProjectPath,
|
|
[switch]$Recurse,
|
|
[int]$Depth=1,
|
|
[switch]$NoLogs,
|
|
[switch]$NoPull,
|
|
[array]$PullParams,
|
|
[array]$LogsParams,
|
|
[array]$UpParams,
|
|
[Parameter(Position = 0, ValueFromRemainingArguments = $true)]
|
|
[array]$Containers
|
|
)
|
|
|
|
$local:ForceNoFollow = $false
|
|
if( -not $ProjectPath ) {
|
|
$ProjectPath=@($PWD)
|
|
$ForceNoFollow = $Recurse
|
|
|
|
} elseif( -not $NoLogs ) {
|
|
$ForceNoFollow=$($ProjectPath.Length -gt 1)
|
|
}
|
|
|
|
if( -not $Containers -or ($Containers[0] -is [string]) ) { $Containers = @($Containers,@($null)) }
|
|
if( -not $UpParams -or ($UpParams[0] -is [string]) ) { $UpParams = @($UpParams,@($null)) }
|
|
if( -not $PullParams -or ($PullParams[0] -is [string]) ) { $PullParams = @($PullParams,@($null)) }
|
|
if( -not $LogsParams -or ($LogsParams[0] -is [string]) ) { $LogsParams = @($LogsParams,@($null)) }
|
|
|
|
if( -not $LogsParams[0] ) {
|
|
$local:tailLen = 10
|
|
$logsParams[0] = @()
|
|
if( -not $ForceNoFollow ) {
|
|
$tailLen = 40
|
|
$logsParams[0] += @('--follow')
|
|
}
|
|
$logsParams[0] += @("--tail=$tailLen")
|
|
}
|
|
|
|
$PullParams[0] = @('&','pull' ) + $PullParams[0] + $Containers
|
|
$UpParams[0] = @('&', 'up' ) + $UpParams[0] + $Containers
|
|
$LogsParams[0] = @('logs' ) + $LogsParams[0] + $Containers
|
|
|
|
$local:allParams = $PullParams + @(@('!')) + $UpParams
|
|
if( -not $NoLogs ) { $allParams += @(@('!')) + $LogsParams }
|
|
|
|
Invoke-DockerCompose -ProjectPath $ProjectPath -CliParams $allParams -Recurse:$Recurse -Depth $Depth
|