blob: 2ceb73258a191e05c0f1d71f8dce321551fdefd4 [file] [log] [blame]
[environment]::CurrentDirectory = $(Get-Location)
if (-not $(Test-Path .\GenerateNewPptxCmdlet.ps1))
{
Throw "You must run this script from within the NewPptxPresentations directory"
}
$dx = "..\Cmdlets\PptxLib.ps1"
if (Test-Path $dx) { del $dx}
$lineBreak = [System.Environment]::NewLine
[System.Text.StringBuilder]$sbDxl = New-Object -TypeName System.Text.StringBuilder
$copyrightString = @"
<#***************************************************************************
Copyright (c) Microsoft Corporation 2015.
This code is licensed using the Microsoft Public License (Ms-PL). The text of the license can be found here:
http://www.microsoft.com/resources/sharedsource/licensingbasics/publiclicense.mspx
Published at http://OpenXmlDeveloper.org
Resource Center and Documentation: http://openxmldeveloper.org/wiki/w/wiki/powertools-for-open-xml.aspx
***************************************************************************#>
"@
[void]$sbDxl.Append($copyrightString + $lineBreak)
dir *.pptx | % {
$fi = New-Object System.IO.FileInfo $_
[void]$sbDxl.Append("`$SamplePptx$($_.BaseName) =" + $lineBreak)
$b64 = $(ConvertTo-Base64 $_ -PowerShellLiteral)
[void]$sbDxl.Append($b64 + $lineBreak)
[void]$sbDxl.Append("" + $lineBreak)
}
Set-Content -Value $sbDxl.ToString() -Path $dx -Encoding UTF8
$template = [System.IO.File]::ReadAllLines("..\Cmdlets\New-Pptx-Template.ps1")
$paramDocs = -1;
$paramDecl = -1;
$paramUse = -1;
for ($i = 0; $i -lt $template.Length; $i++)
{
$t = $template[$i]
if ($t.Contains("ParameterDocumentation")) { $paramDocs = $i }
if ($t.Contains("ParameterDeclaration")) { $paramDecl = $i }
if ($t.Contains("ParameterUse")) { $paramUse = $i }
}
$npx = "..\Cmdlets\New-Pptx.ps1"
if (Test-Path $npx)
{
Remove-Item $npx
}
$sbGenNewPptx = New-Object System.Text.StringBuilder;
$template[0..($paramDocs - 1)] | % { [void]$sbGenNewPptx.Append($_ + $lineBreak) }
dir *.pptx | % {
$fi = New-Object System.IO.FileInfo $_
[void]$sbGenNewPptx.Append(" .PARAMETER $($fi.BaseName)" + $lineBreak)
$fiDesc = New-Object System.IO.FileInfo $($_.BaseName + ".txt")
if ($fiDesc.Exists)
{
Get-Content $($fiDesc.FullName) | % { [void]$sbGenNewPptx.Append(' ' + $_ + $lineBreak) }
}
else
{
$errMessage = "Error: $($fi.BaseName).pptx does not have a corresponding $($fi.BaseName).txt"
Write-Host -ForegroundColor Red $errMessage
[void]$sbGenNewPptx.Append(' ' + $errMessage + $lineBreak)
}
}
$start = $paramDocs + 1
$end = $paramDecl - 1
$template[$start..$end] | % { [void]$sbGenNewPptx.Append($_ + $lineBreak) }
$last = (($(dir *.pptx) | measure).Count) - 1
$count = 0
dir *.pptx | % {
$fi = New-Object System.IO.FileInfo $_
[void]$sbGenNewPptx.Append(' [Parameter(Mandatory=$False)]' + $lineBreak)
[void]$sbGenNewPptx.Append(' [Switch]' + $lineBreak)
if ($count -ne $last)
{
[void]$sbGenNewPptx.Append(" [bool]`$$($_.BaseName)," + $lineBreak)
}
else
{
[void]$sbGenNewPptx.Append(" [bool]`$$($_.BaseName)" + $lineBreak)
}
[void]$sbGenNewPptx.Append($lineBreak)
$count++
}
$start = $paramDecl + 1
$end = $paramUse - 1
$template[$start..$end] | % { [void]$sbGenNewPptx.Append($_ + $lineBreak) }
dir *.pptx | % {
$fi = New-Object System.IO.FileInfo $_
[void]$sbGenNewPptx.Append(" if (`$All -or `$$($fi.BaseName)) { AppendPresentation `$srcList `$SamplePptx$($fi.BaseName) `"$($fi.BaseName)`" }" + $lineBreak)
}
$start = $paramUse + 1
$template[$start..99999] | % { [void]$sbGenNewPptx.Append($_ + $lineBreak) }
Set-Content -Value $sbGenNewPptx.ToString() -Path $npx -Encoding UTF8