############### MAIN ############### $Main = { [CmdletBinding()] Param( [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string] $destHost, [Parameter(Mandatory=$false)] [string[]] $apps ) If($PSBoundParameters.ContainsKey("apps")) { foreach ($appname in $apps) { copyfolder $destHost "$appname\stacks" $appname } } else { $appname="$pwd".Split("\\")[-1] copyfolder $destHost "stacks" $appname } } ################################### Function copyfolder { [CmdletBinding()] Param( [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string] $destHost, [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string] $srcdir, [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string] $appname ) if (-Not(Test-Path -Path $srcdir)) { Write-Host "Source path doesn't exist: ""$PSScriptRoot\$srcdir\*.*"". No files copied!" -ForegroundColor Red Write-Host "Usage: in app folder : ./cp2nas DEST|IP" Write-Host " in app parent folder: ./cp2nas DEST|IP app1, app2, app3, ..." return } $destStacks="/mnt/SSD1/docker/stacks/" $destDir=$destStacks+$appname+"/" Write-Host "pscp -P 22 -r ""$srcdir\*.*"" root@${destHost}:""${destDir}""" -ForegroundColor Green Write-Host "Copying to ${destHost}:""${destStacks}" -NoNewline Write-Host "${appname}/" -ForegroundColor DarkYellow -NoNewline Write-Host """:" pscp -P 22 -r "$srcdir\*.*" root@${destHost}:""${destDir}"" } ################################### & $Main @Args