scripts/Dependencies.ps1 (33 lines of code) (raw):

param ( [string] $Repository = 'PSGallery' ) # Development Modules Set-PSRepository -Name $Repository -InstallationPolicy Trusted $modules = @("Pester", "PSModuleDevelopment", "PSScriptAnalyzer") Write-Output "Installing development modules" foreach ($module in $modules) { Write-Output "Installing: $module" Install-Module $module -Repository $Repository -Force } # Runtime Modules $data = Import-PowerShellDataFile -Path "$PSScriptRoot/../src/AzOps.psd1" Write-Output "Installing runtime modules" foreach ($dependency in $data.RequiredModules) { $module = Get-Module -Name $dependency.ModuleName -ListAvailable if ($module) { foreach ($item in $module) { Write-Output "Cleanup of: $($item.Name)" Uninstall-Module -Name $item.Name -Force } } Write-Output "Installing: $($dependency.ModuleName) $($dependency.RequiredVersion)" Install-Module -Name $dependency.ModuleName -RequiredVersion $dependency.RequiredVersion -Repository $Repository } # Download and add bicep to PATH curl -Lo bicep https://github.com/Azure/bicep/releases/latest/download/bicep-linux-x64 chmod +x ./bicep sudo mv ./bicep /usr/local/bin/bicep bicep --help # List Modules Get-InstalledModule | Select-Object Name, Version, Repository, InstalledDate | Sort-Object Name | Format-Table