@inherits AWSPowerShellGenerator.Writers.SourceCode.CopyModularArtifactsScriptTemplate @using System @using System.Collections.Generic @using System.Linq param ( [string]$rootFolder, [string]$configuration ) $ErrorActionPreference = "Stop" $releaseBitPath = "bin/$configuration/netstandard2.0" $generatorAssemblyPath ="$rootFolder/generator/AWSPSGenerator/bin/$configuration/netcoreapp3.1/AWSPSGenerator.dll" $modularDeploymentFolder = "$rootFolder/Deployment/AWS.Tools" $commonModuleFolder = "$rootFolder/modules/ModularAWSPowerShell" $installerModuleFolder = "$rootFolder/modules/Installer" $monolithicModuleFolder = "$rootFolder/modules/AWSPowerShell" $serviceProjectsFolder = "$monolithicModuleFolder/Cmdlets" $assembliesFolder = "$rootFolder/Include/sdk/assemblies" $moduleFilesSuffixes = @@('.Completers.psm1', '.Aliases.psm1', '.psd1') $binFilesSuffixes = @@('.dll', '.XML', '.dll-Help.xml', '.Format.ps1xml') If (Test-Path $modularDeploymentFolder) { Remove-Item -Path $modularDeploymentFolder -Recurse } New-Item -Path $modularDeploymentFolder -ItemType Directory dotnet $generatorAssemblyPath -rp $rootFolder -t formats -an AWS.Tools.Common -ml $commonModuleFolder/$releaseBitPath -sdk $assembliesFolder If ($LASTEXITCODE){ Throw "Formats Generator returned error $LASTEXITCODE for Common" } dotnet $generatorAssemblyPath -rp $rootFolder -t pshelp -an AWS.Tools.Common -ml $commonModuleFolder/$releaseBitPath If ($LASTEXITCODE){ Throw "PSHelp Generator returned error $LASTEXITCODE for Common" } New-Item -Path "$modularDeploymentFolder/AWS.Tools.Common" -ItemType Directory foreach ($suffix in $moduleFilesSuffixes) { Copy-Item -Path "$commonModuleFolder/AWS.Tools.Common$suffix" -Destination "$modularDeploymentFolder/AWS.Tools.Common/AWS.Tools.Common$suffix" } foreach ($suffix in $binFilesSuffixes) { Copy-Item -Path "$commonModuleFolder/$releaseBitPath/AWS.Tools.Common$suffix" -Destination "$modularDeploymentFolder/AWS.Tools.Common/AWS.Tools.Common$suffix" } Copy-Item -Path "$commonModuleFolder/$releaseBitPath/AWSSDK.Core.dll" -Destination "$modularDeploymentFolder/AWS.Tools.Common/AWSSDK.Core.dll" Copy-Item -Path "$commonModuleFolder/$releaseBitPath/AWSSDK.SecurityToken.dll" -Destination "$modularDeploymentFolder/AWS.Tools.Common/AWSSDK.SecurityToken.dll" Copy-Item -Path "$monolithicModuleFolder/ImportGuard.ps1" -Destination "$modularDeploymentFolder/AWS.Tools.Common/ImportGuard.ps1" Copy-Item -Path "$assembliesFolder/netstandard2.0/aws-crt.dll" -Destination "$modularDeploymentFolder/AWS.Tools.Common/aws-crt.dll" Copy-Item -Path "$assembliesFolder/netstandard2.0/aws-crt-auth.dll" -Destination "$modularDeploymentFolder/AWS.Tools.Common/aws-crt-auth.dll" Copy-Item -Path "$assembliesFolder/netstandard2.0/aws-crt-http.dll" -Destination "$modularDeploymentFolder/AWS.Tools.Common/aws-crt-http.dll" Copy-Item -Path "$assembliesFolder/netstandard2.0/aws-crt-checksums.dll" -Destination "$modularDeploymentFolder/AWS.Tools.Common/aws-crt-checksums.dll" Copy-Item -Path "$assembliesFolder/netstandard2.0/AWSSDK.Extensions.CrtIntegration.dll" -Destination "$modularDeploymentFolder/AWS.Tools.Common/AWSSDK.Extensions.CrtIntegration.dll" Copy-Item -Path "$rootFolder/LICENSE" -Destination "$modularDeploymentFolder/AWS.Tools.Common/LICENSE" Copy-Item -Path "$rootFolder/NOTICE" -Destination "$modularDeploymentFolder/AWS.Tools.Common/NOTICE" $projectNameList = @@('@(string.Join("', '", Projects.Select(project => project.AssemblyName)))') foreach ($project in $projectNameList) { $projectDeploymentFolder = "$modularDeploymentFolder/AWS.Tools.$project" $projectFolder = "$serviceProjectsFolder/$project" dotnet $generatorAssemblyPath -rp $rootFolder -t formats -an AWS.Tools.$project -ml $projectFolder/$releaseBitPath -sdk $assembliesFolder If ($LASTEXITCODE){ Throw "Formats Generator returned error $LASTEXITCODE for $project" } dotnet $generatorAssemblyPath -rp $rootFolder -t pshelp -an AWS.Tools.$project -ml $projectFolder/$releaseBitPath If ($LASTEXITCODE){ Throw "PSHelp Generator returned error $LASTEXITCODE for $project" } New-Item -Path $projectDeploymentFolder -ItemType Directory foreach ($suffix in $moduleFilesSuffixes) { Copy-Item -Path "$projectFolder/AWS.Tools.$project$suffix" -Destination "$projectDeploymentFolder/AWS.Tools.$project$suffix" } foreach ($suffix in $binFilesSuffixes) { Copy-Item -Path "$projectFolder/$releaseBitPath/AWS.Tools.$project$suffix" -Destination "$projectDeploymentFolder/AWS.Tools.$project$suffix" } if ($project -ne 'SecurityToken') { Copy-Item -Path "$projectFolder/$releaseBitPath/AWSSDK.$project.dll" -Destination "$projectDeploymentFolder/AWSSDK.$project.dll" } Copy-Item -Path "$rootFolder/LICENSE" -Destination "$projectDeploymentFolder/LICENSE" Copy-Item -Path "$rootFolder/NOTICE" -Destination "$projectDeploymentFolder/NOTICE" } New-Item -Path "$modularDeploymentFolder/AWS.Tools.Installer" -ItemType Directory Copy-Item -Path "$installerModuleFolder/AWS.Tools.Installer.psd1" -Destination "$modularDeploymentFolder/AWS.Tools.Installer/AWS.Tools.Installer.psd1" Copy-Item -Path "$installerModuleFolder/AWS.Tools.Installer.psm1" -Destination "$modularDeploymentFolder/AWS.Tools.Installer/AWS.Tools.Installer.psm1"