Bundle DSC Waves for Pull Server Distribution
This assumes you have WinRar installed to the default path, this will also delete the source files after it creates the zip files.
After running this script copy the resulting files to the DSC server in the following location: "C:\Program Files\WindowsPowerShell\DscService\Modules"
$modpath = "-path to dsc wave-"
$output = "-path to save wave to-"
[regex]$reg = "([0-9\.]{3,12})"
if((Test-Path $output) -ne $true){ New-Item -Path $output -ItemType Directory -Force }
foreach($module in (Get-ChildItem -Path $modpath)) {
$psd1 = ($module.FullName+"\"+$module+".psd1")
$content = Get-Content $psd1
foreach($line in $content) {
if($line.Contains("ModuleVersion")) {
$outpath = $output+"\"+$module.Name+"_"+($reg.Match($line).Captures)
Write-Host ""
if(Test-Path -Path $outpath) {
Copy-Item -Path $module.FullName -Destination $outpath -Recurse
}else{
New-Item -Path $outpath -ItemType Directory -Force
Copy-Item -Path $module.FullName -Destination $outpath -Recurse
}
& "C:\Program Files\WinRar\winrar.exe" a -afzip -df -ep1 ($outpath+".zip") $outpath
}
}
}
Start-Sleep -Seconds 1
New-DscCheckSum -Path $output