init commit
This commit is contained in:
79
New-PPTSettings.ps1
Normal file
79
New-PPTSettings.ps1
Normal file
@@ -0,0 +1,79 @@
|
||||
function New-PPTSettings {
|
||||
[CmdLetBinding()]
|
||||
Param (
|
||||
$Path = (Get-Location).Path
|
||||
)
|
||||
|
||||
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)
|
||||
|
||||
If((Get-ChildItem -Path $Path.path -Name *.zip).Count -ge 1) {
|
||||
$index = 1
|
||||
$solutions = Get-ChildItem -Path $Path.path -Name *.zip | Get-Item | ForEach-Object {
|
||||
@{
|
||||
$index++ = @{
|
||||
id = $index - 1
|
||||
name = "$($_.Name)"
|
||||
fullname = $_.FullName
|
||||
directory = $_.Directory
|
||||
basename = $_.BaseName
|
||||
}
|
||||
}
|
||||
}
|
||||
do {
|
||||
#Write-Host "┌───────────────────────────────────────────────────────────────┐" -ForegroundColor Green
|
||||
#Write-Host "│" -ForegroundColor Green -NoNewLine; Write-Host "`t`tPACKAGES AVAILABLE IN CURRENT PROJECT`t`t" -ForegroundColor Cyan -NoNewline; Write-Host "│" -ForegroundColor Green
|
||||
#Write-Host "└───────────────────────────────────────────────────────────────┘" -ForegroundColor Green
|
||||
$solutions | %{"[ {0} ] {1}" -f $_.Values.id,$_.Values.basename}
|
||||
$solutionsId = Read-Host -Prompt "`nSelect Solution Package ($((1..$solutions.Values.id.Count) -join ','))"
|
||||
} while ($solutionsId -notin (1..$solutions.Values.id.Count))
|
||||
$solutionSelectd = ($solutions | ?{$_.Values.id -eq $solutionsId})
|
||||
|
||||
$Path.leaf = $solutionSelectd.Values.basename
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
process {
|
||||
|
||||
|
||||
foreach ($env in $config.env) {
|
||||
|
||||
$settingsFile = "$($env.name.ToUpper()).$($env.env_id).$($Path.leaf).json"
|
||||
$IsSolutionPresent = Test-Path -Path "$($Path.path)\$($Path.leaf).zip"
|
||||
|
||||
if($IsSolutionPresent) {
|
||||
|
||||
Write-Host "[ Info ] " -ForegroundColor Green -nonewline; write-host "Generating Solution Settings File" -ForegroundColor Cyan
|
||||
& $Global:pptConfig.pacPath solution create-settings --solution-zip "$($Path.path)\$($Path.leaf).zip" --settings-file $settingsFile
|
||||
|
||||
} else {
|
||||
|
||||
Write-Host '[ Error ] ' -ForegroundColor Yellow -nonewline; write-host "Solution Package Missing: $($Path.path)\$($Path.leaf).zip" -ForegroundColor Yellow
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
end {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
# EXPORT ALIAS
|
||||
New-Alias -Name settings -Value New-PPTSettings -Description 'posh-PowerPlatformToolkit - New-PPTSettings alias' -Force
|
||||
Reference in New Issue
Block a user