build.ps1
$ErrorActionPreference = 'Stop' try { $manifestFilePath = "$env:APPVEYOR_BUILD_FOLDER\PSSoftware.psd1" $manifestContent = Get-Content -Path $manifestFilePath -Raw $functionsToExport = @( 'Compare-FilePath', 'Compare-FolderPath', 'Convert-CompressedGuidToGuid', 'Convert-GuidToCompressedGuid', 'Convert-ToUncPath', 'Copy-FileWithHashCheck', 'Find-InTextFile', 'Get-32BitProgramFilesPath', 'Get-32BitRegistrySoftwarePath', 'Get-AllUsersDesktopFolderPath', 'Get-AllUsersProfileFolderPath', 'Get-AllUsersRegistryValue', 'Get-AllUsersRegistryKey', 'Get-AllUsersStartMenuFolderPath', 'Get-Architecture', 'Get-ChildProcess', 'Get-DriveFreeSpace', 'Get-FileVersion', 'Get-InstalledSoftware', 'Get-InstallerType', 'Get-InstallshieldInstallString', 'Get-LoggedOnUserSID', 'Get-MyFileHash', 'Get-OperatingSystem', 'Get-RegistryValue', 'Get-RootUserProfileFolderPath', 'Get-Shortcut', 'Get-SystemTempFolderPath', 'Get-UserProfile', 'Get-UserProfilePath', 'Import-Certificate', 'Import-RegistryFile', 'Install-Software', 'Get-MsiexecInstallString', 'New-Shortcut', 'Register-File', 'Remove-MyService', 'Remove-ProfileItem', 'Remove-RegistryKey', 'Remove-Software', 'Set-AllUserStartupAction', 'Set-MyFileSystemAcl', 'Set-AllUsersRegistryValue', 'Start-Log', 'Stop-MyProcess', 'Stop-SoftwareProcess', 'Test-Process', 'Test-InstalledSoftware', 'Uninstall-InstallShieldPackage', 'Uninstall-ViaMsizap', 'Uninstall-WindowsInstallerPackage', 'Uninstall-WindowsInstallerPackageWithMsiexec', 'Uninstall-WindowsInstallerPackageWithMsiModule', 'Wait-MyProcess', 'Wait-WindowsInstaller', 'Write-Log' ) ## Update the module version based on the build version and limit exported functions $replacements = @{ "ModuleVersion = '.*'" = "ModuleVersion = '$env:APPVEYOR_BUILD_VERSION'" "FunctionsToExport = '\*'" = 'FunctionsToExport = @({0})' -f "'$($functionsToExport -join "','")'" } $replacements.GetEnumerator() | foreach { $manifestContent = $manifestContent -replace $_.Key,$_.Value } $manifestContent | Set-Content -Path $manifestFilePath Write-Host '==============================================' Write-Host 'Manifest to publish' Write-Host '==============================================' Write-Host (Get-Content -Path $manifestFilePath -Raw) Write-Host '==============================================' } catch { $host.SetShouldExit($LastExitCode) } |