src/Publish-CciCustomizationBats.ps1
function Publish-CciCustomizationBats { [CmdletBinding()] param ( [string]$targetDir = 'C:\Users\public\Desktop', $moduleName, [string]$team, [switch]$NoClobber ) begin { Write-Verbose "$(Get-Date) : Started running $($MyInvocation.MyCommand)" $moduleParentPath = "C:\CCI\$moduleName" $artifactsPath = Join-Path -Path $moduleParentPath -ChildPath "artifacts" if ([string]::IsNullOrWhiteSpace($team)) { [string]$teamSequence = [string]::Empty [string]$batTeamFlag = [string]::Empty [string]$templateDir = [string]::Empty [string]$getTemplateArtifacts = [string]::Empty } else { [string]$teamSequence = "_$team" [string]$batTeamFlag = " -Team $team" [string]$templateDir = "-templateDir $artifactsPath\templates\$team" [string]$getTemplateArtifacts = "Get-CciArtifact templates;" } $sequences = Get-Content "C:\CCI\$moduleName\artifacts\sequences$teamSequence.json" | ConvertFrom-Json } process { foreach ($sequence in ($sequences | Get-Member -MemberType NoteProperty).Name) { $batFileFullPath = "$($targetDir)\$($sequence).bat" $fileExists = Test-Path "$batFileFullPath" if (!$fileExists){ Write-Host "Creating $($batFileFullPath)" $bat = New-Item -Name "$sequence.bat" -Path $targetDir -ItemType File Add-Content -Path $bat.FullName -Value "powershell -NoProfile -ExecutionPolicy Bypass -Command `"& {Start-Process powershell.exe -ArgumentList 'Set-ExecutionPolicy Bypass -Force; Get-cciModule -Name $moduleName$batTeamFlag; Import-module c:\CCI\$moduleName\$moduleName.psd1 -Force; $getTemplateArtifacts Initialize-CciCustomizationsSequence $templateDir -Template $($sequences.$sequence)' -Verb RunAs}`"" } else { if (!($NoClobber)){ Write-Host "Overwriting $($batFileFullPath)" Remove-Item -Path $batFileFullPath -Force $bat = New-Item -Name "$sequence.bat" -Path $targetDir -ItemType File Add-Content -Path $bat.FullName -Value "powershell -NoProfile -ExecutionPolicy Bypass -Command `"& {Start-Process powershell.exe -ArgumentList 'Set-ExecutionPolicy Bypass -Force; Get-cciModule -Name $moduleName$batTeamFlag; Import-module c:\CCI\$moduleName\$moduleName.psd1 -Force; $getTemplateArtifacts Initialize-CciCustomizationsSequence $templateDir -Template $($sequences.$sequence)' -Verb RunAs}`"" } else { Write-Host "$($batFileFullPath) already exists, skipping" } } } } end { Write-Verbose "$(Get-Date) : Finished running $MyInvocation.MyCommand" } } #(goto) 2>nul & del "%~f0" |