init commit
This commit is contained in:
73
Start-PPT-SolutionRepack.ps1
Normal file
73
Start-PPT-SolutionRepack.ps1
Normal file
@@ -0,0 +1,73 @@
|
||||
function Start-PPTSolutionRepack {
|
||||
[CmdLetBinding()]
|
||||
Param(
|
||||
$Path = (Get-Location).Path,
|
||||
[Alias('m')]
|
||||
[switch]$Managed
|
||||
)
|
||||
|
||||
begin {
|
||||
|
||||
$Path = @{
|
||||
qualifier = (Split-Path -Path $Path -Qualifier)
|
||||
parent = (Split-Path -Path $Path)
|
||||
leaf = (Split-Path -Path $Path -Leaf)
|
||||
path = $Path
|
||||
pathBuild = (Join-Path -Path $Path -ChildPath 'Build')
|
||||
pathConfig = (Join-Path -Path $Path -ChildPath 'Build\config.json')
|
||||
sourcePath = (Join-Path -Path $PSScriptRoot -ChildPath 'source')
|
||||
sourceConfig = (Join-Path -Path $PSScriptRoot -ChildPath 'source\config.ps1')
|
||||
sourceIgnore = (Join-Path -Path $PSScriptRoot -ChildPath 'source\.gitignore')
|
||||
}
|
||||
|
||||
$config = (Get-Content $Path.pathConfig | ConvertFrom-Json)
|
||||
$env = ($config.env | ?{$_.name -eq $Environment})
|
||||
|
||||
function NameThatSolution () {
|
||||
#Write-Host "┌───────────────────────────────────────────────────────────────┐" -ForegroundColor Green
|
||||
#Write-Host "│" -ForegroundColor Green -NoNewLine; Write-Host "`t`t`tNAME THAT SOLUTION`t`t`t" -ForegroundColor Cyan -NoNewline; Write-Host "│" -ForegroundColor Green
|
||||
#Write-Host "└───────────────────────────────────────────────────────────────┘" -ForegroundColor Green
|
||||
do {
|
||||
$solutionNameProvided = Read-Host -Prompt "Enter Solution Package name"
|
||||
If($solutionNameProvided -match '\s*(\W+?)') {
|
||||
Write-Host "We had to fix a few things with the Solution Package name provided [" -NoNewline -ForegroundColor Yellow
|
||||
Write-Host "$($solutionNameProvided)" -NoNewLine -ForegroundColor White
|
||||
Write-Host "]`nHope you're not too upset." -ForegroundColor Yellow
|
||||
}
|
||||
$solutionNewName = $solutionNameProvided -replace ('\s*(\W+?)', '')
|
||||
Write-Host "`n$(If($solutionNameProvided -match '\s*(\W+?)'){"A little fixer upper: "}Else{"Solution Package Name:"})" -NoNewline -ForegroundColor Green
|
||||
Write-Host "$($solutionNewName)" -ForegroundColor Magenta
|
||||
$continueSolutionName = Read-Host -Prompt "$(If($solutionNameProvided -match '\s*(\W+?)'){"We good?"}Else{"Continue"}) (y/n)"
|
||||
} while ($continueSolutionName -ne 'y' -or $continueSolutionName -ne 'Y')
|
||||
#$Path.leaf = $solutionNewName
|
||||
return $solutionNewName
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
process {
|
||||
|
||||
$Path.leaf = NameThatSolution
|
||||
|
||||
Write-Host "[ Info ] " -ForegroundColor Green -nonewline; write-host "Repacking $(If($Managed){'managed'}else{'unmanaged'}) solution used for deployment" -ForegroundColor Cyan
|
||||
|
||||
foreach ($msapp in (Get-ChildItem -Path (Join-Path -Path $Path.path -ChildPath 'CanvasApps') -Filter '*.msapp')) {
|
||||
Write-Host "[ Info ] " -ForegroundColor Green -nonewline; write-host "Compiling $($msapp.basename.split('_')[1]) Binary Canvas Application" -ForegroundColor Cyan
|
||||
Write-Host "[ Info ] " -ForegroundColor Green -nonewline; write-host "$($msapp.Fullname)" -ForegroundColor Cyan
|
||||
$applicationManifest = $null
|
||||
$applicationManifest = Get-ChildItem -Path (Join-Path -Path $Path.path -ChildPath "CanvasApps\src") -Filter "*_$($msapp.basename.split('_')[1])_*"
|
||||
& $Global:pptConfig.pacPath canvas pack --msapp $msapp.Fullname --sources "$($applicationManifest.Fullname)"
|
||||
}
|
||||
|
||||
& $Global:pptConfig.pacPath solution pack --zipfile "$($Path.path)\$($Path.leaf).zip" --folder $Path.path --processCanvasApps --packagetype $(If($Managed){'Managed'}else{'Unmanaged'}) --errorLevel Verbose
|
||||
|
||||
}
|
||||
|
||||
end {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# EXPORT ALIAS
|
||||
New-Alias -Name repack -Value Start-PPTSolutionRepack -Description 'posh-PowerPlatformToolkit - Start-PPTSolutionRepack alias' -Force
|
||||
Reference in New Issue
Block a user