114 lines
4.9 KiB
PowerShell
114 lines
4.9 KiB
PowerShell
function Initialize-PPT {
|
|
[CmdLetBinding()]
|
|
Param (
|
|
$Path = (Get-Location).Path
|
|
)
|
|
|
|
begin {
|
|
$PSScriptRoo = "C:\Users\DC21520\OneDrive - Defense Information Systems Agency\Documents\WindowsPowerShell\Modules\posh-PowerPlatformToolkit"
|
|
|
|
$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')
|
|
}
|
|
|
|
Write-Host "`nInitializing Power Platform Toolkit in:" -ForegroundColor Cyan
|
|
Write-Host "$($Path.path)" -BackgroundColor DarkCyan -ForegroundColor Black
|
|
|
|
do {
|
|
$initContinue = Read-Host "`nDo you want to continue (y/n) "
|
|
$initContinue = $initContinue.ToLower()
|
|
} while ($initContinue -notmatch 'y|n')
|
|
|
|
}
|
|
|
|
process {
|
|
|
|
switch ($initContinue) {
|
|
|
|
'y' { Write-Host "Initializing Power Platform Toolkit..." -ForegroundColor Cyan; $initContinue = $null }
|
|
'n' { Write-Host "Seems like you need to give this a little more thought... I can wait." -ForegroundColor Yellow; $initContinue = $null; return }
|
|
default { Write-Warning "Unexpected error"; $initContinue = $null; return }
|
|
|
|
}
|
|
|
|
if(Test-Path -Path $Path.pathConfig) {
|
|
|
|
Write-Host "`nPower Platform Toolkit was already initialized for this directory!" -ForegroundColor Yellow
|
|
Write-Host "Initializing again will overwrite your current configuration." -BackgroundColor DarkYellow -ForegroundColor Black
|
|
|
|
do {
|
|
$initContinue = Read-Host "`nDo you want to continue (y/n) "
|
|
$initContinue = $initContinue.ToLower()
|
|
} while ($initContinue -notmatch 'y|n')
|
|
|
|
switch ($initContinue) {
|
|
|
|
'y' { Write-Host "Initializing Power Platform Toolkit..." -ForegroundColor Cyan; $initContinue = $null }
|
|
'n' { Write-Host "Seems like you need to give this a little more thought... I can wait." -ForegroundColor Yellow; $initContinue = $null; return }
|
|
default { Write-Warning -Message "Unexpected error"; $initContinue = $null; return }
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
try {
|
|
|
|
New-Item -Path $Path.PathBuild -ItemType Directory -Verbose -Force -ErrorAction Stop > $null
|
|
New-Item -Path $Path.pathConfig -ItemType File -Verbose -Force -ErrorAction Stop > $null
|
|
Copy-Item -Path $Path.sourceIgnore -Destination $Path.path -Verbose -Force -ErrorAction Stop > $null
|
|
Copy-Item -Path "$($Path.sourcePath)\README.md" -Destination $Path.path -Verbose -Force -ErrorAction Stop > $null
|
|
. $Path.sourceConfig | ConvertTo-Json -Verbose > $Path.pathConfig
|
|
|
|
} catch [System.Exception] {
|
|
|
|
Write-Warning -Message "$($_.Exception.Message)"
|
|
return
|
|
|
|
}
|
|
|
|
|
|
# FEATURE DEVELOPMENT ON LATER RELEASE
|
|
<#
|
|
do {
|
|
|
|
Write-Host "`nGit Repository Parent Group Options" -BackgroundColor DarkCyan -ForegroundColor Black
|
|
Write-Host "Select the Parent Group for " -NoNewline -ForegroundColor Cyan; Write-Host "$($Path.leaf)" -ForegroundColor Green
|
|
for ($i = 0; $i -lt $pptConfig.gitParentGroup.Count; $i++) {
|
|
Write-Host "[$($i + 1)] $($Global:pptConfig.gitParentGroup[$i])"
|
|
}
|
|
$parentGroup = Read-Host "Group "
|
|
|
|
} while ($parentGroup -notin (1..$pptConfig.gitParentGroup.Count))
|
|
do {
|
|
|
|
Write-Host "`nGit Repository Child Group Options" -BackgroundColor DarkCyan -ForegroundColor Black
|
|
Write-Host "Select the Child Group for " -NoNewline -ForegroundColor Cyan; Write-Host "$($Path.leaf)" -ForegroundColor Green
|
|
for ($i = 0; $i -lt $pptConfig.gitChildGroup.Count; $i++) {
|
|
Write-Host "[$($i + 1)] $($Global:pptConfig.gitChildGroup[$i])"
|
|
}
|
|
$childGroup = Read-Host "Group "
|
|
|
|
} while ($childGroup -notin (1..$pptConfig.gitChildGroup.Count))
|
|
#>
|
|
# FEATURE DEVELOPMENT ON LATER RELEASE
|
|
|
|
}
|
|
|
|
end {
|
|
|
|
}
|
|
}
|
|
|
|
|
|
# EXPORT ALIAS
|
|
New-Alias -Name init -Value Initialize-PPT -Description 'posh-PowerPlatformToolkit - Initialize-PPT alias' -Force
|