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