From a7ac392886afa1856c7df9caf523d107c6e22401 Mon Sep 17 00:00:00 2001 From: Gal Date: Fri, 15 Jan 2021 01:56:10 -0500 Subject: [PATCH] Fixes and completion of Invoke-DockerCompose --- docker/Invoke-DockerCompose.ps1 | 31 +++++++++++++++++++------------ docker/dcreup.ps1 | 2 +- docker/dcup.ps1 | 5 +++-- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/docker/Invoke-DockerCompose.ps1 b/docker/Invoke-DockerCompose.ps1 index 8224a4f..fcf7022 100644 --- a/docker/Invoke-DockerCompose.ps1 +++ b/docker/Invoke-DockerCompose.ps1 @@ -62,7 +62,7 @@ foreach( $local:p in $CliParams ) { $local:AsJob = $false; $local:Wait = $false; - if( $p -isnot [String] ) { + if( $p -isnot [String] -or $p.Length -eq 1 ) { $local:skipFirst = $true switch( $p[0] ) { '&' { $AsJob = $true } @@ -72,7 +72,8 @@ foreach( $local:p in $CliParams ) { if( $skipFirst ) { $p = $p | Select-Object -Skip 1 } } - $dcParams = $p | Where-Object { $_ } | ForEach-Object { + $local:dcParams=@() + $local:dcParams = $p | Where-Object { $_ } | ForEach-Object { if( $_ -match "(?:^'[^']+'$)|(?:^`"[^`"]+`"$)|(?:^[^\s]+$)" ) { $_ } else { "'$($_.Replace( "'", "''" ))'" } } @@ -81,16 +82,22 @@ foreach( $local:p in $CliParams ) { $local:dcPath = Join-Path $_ 'docker-compose.yml' if( -not (Test-Path $dcPath) ) { if( $Recurse ) { return } else { throw "ERROR: dcPath ($dcPath) does not exists" } } - Write-Verbose "& docker-compose --file $dcPath $dcParams" - if( $Wait -and -not $WhatIfPreference ) { - CompleteJobs - } - - if( -not $dcParams ) { continue } - + if( $Wait ) { if( $WhatIfPreference ) { - Write-Host "In $dcPath Run $(if($AsJob){"(bg) "})with: $dcParams" - } elseif( $AsJob ) { + Write-Host -ForegroundColor DarkCyan "Wait for bg jobs to complete !" + } else { + CompleteJobs + } + } + + if( -not $dcParams ) { continue } + + if( $WhatIfPreference ) { + Write-Host "In $dcPath Run $(if($AsJob){"(bg) "})with: $dcParams" + } else { + Write-Verbose "& docker-compose --file $dcPath $dcParams" + + if( $AsJob ) { $JobQueue += Start-Job -ArgumentList @($dcPath,$dcParams) -ScriptBlock { param($dcPath,$dcParams) [PSCustomObject] $([ordered]@{ @@ -102,9 +109,9 @@ foreach( $local:p in $CliParams ) { } else { & docker-compose --file $dcPath $dcParams } - } } +} # if( $WhatIfPreference ) { return } diff --git a/docker/dcreup.ps1 b/docker/dcreup.ps1 index 4bfce4f..1ac180d 100644 --- a/docker/dcreup.ps1 +++ b/docker/dcreup.ps1 @@ -15,7 +15,7 @@ [switch]$NoPull, [array]$PullParams, [array]$LogsParams, - [array]$UpParams, + [array]$UpParams=@('-d'), [Parameter(Position = 0, ValueFromRemainingArguments = $true)] [array]$Containers ) diff --git a/docker/dcup.ps1 b/docker/dcup.ps1 index ff75733..bc989ba 100644 --- a/docker/dcup.ps1 +++ b/docker/dcup.ps1 @@ -15,7 +15,7 @@ [switch]$NoPull, [array]$PullParams, [array]$LogsParams, - [array]$UpParams, + [array]$UpParams=@('-d'), [Parameter(Position = 0, ValueFromRemainingArguments = $true)] [array]$Containers ) @@ -48,7 +48,8 @@ $PullParams[0] = @('&','pull' ) + $PullParams[0] + $Containers $UpParams[0] = @('&', 'up' ) + $UpParams[0] + $Containers $LogsParams[0] = @('logs' ) + $LogsParams[0] + $Containers -$local:allParams = $PullParams + @(@('!')) + $UpParams +if( -not $NoPull ) { $allParams += $PullParams + @(@('!')) } +$local:allParams += $UpParams if( -not $NoLogs ) { $allParams += @(@('!')) + $LogsParams } Invoke-DockerCompose -ProjectPath $ProjectPath -CliParams $allParams -Recurse:$Recurse -Depth $Depth