Build/Release-AppToFTP.ps1
function Release-AppToFTP{ Param( [Parameter(Mandatory=$true)] [string]$AppName, [Parameter(Mandatory=$true)] [string]$AppDirectory, [Parameter(Mandatory=$true)] [version]$PlatformVersion ) $AppFolder = Get-FolderForPlatformVersion $PlatformVersion $TestAppFolder = Join-Path $AppFolder 'Tests' $Apps = (Get-ChildItem $AppDirectory -Filter '*.app') -match $AppName foreach ($App in $Apps) { if (!$App.Name.Contains('Tests')) { Move-AppToArchive -FolderName $AppFolder -AppName $AppName Write-Host 'Uploading ' $App ' to ' $AppFolder Put-ItemFTPWinSCP -LocalPath $App.FullName -FtpPath $AppFolder } else { Move-AppToArchive -FolderName $TestAppFolder -AppName $AppName Write-Host 'Uploading ' $App ' to ' $TestAppFolder Put-ItemFTPWinSCP -LocalPath $App.FullName -FtpPath $TestAppFolder } } } function Move-AppToArchive{ Param( [Parameter(Mandatory=$true)] [string]$FolderName, [Parameter(Mandatory=$true)] [string]$AppName ) $AppFiles = (Get-ChildItemFTPWinSCP $FolderName) -match $AppName if ($AppFiles -ne $false) { foreach($AppFile in $AppFiles){ Write-Host 'Moving '$AppFile' to Archive' Rename-ItemFTPWinSCP -OldPath $FolderName -Name $AppFile -NewPath 'Archive' } } } function Get-FolderForPlatformVersion{ Param( [Parameter(Mandatory=$true)] [version]$PlatformVersion ) 'Business Central ' + $PlatformVersion.Major; } Export-ModuleMember -Function Release-AppToFTP |