public/Core.ps1
function Ami { [CmdletBinding( SupportsShouldProcess = $true )] param ( [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, HelpMessage = "Path to one locations.")] [Alias("PSPath")] [ValidateNotNullOrEmpty()] [string] $ProfilPath ) begin { if (!(Test-HtPsRunAs)) { Write-Host "You must launch Ami as admin, exit..." pause exit } if (!(Test-Path "$($InstallPath)/Installed.txt") -or !(Test-Path $InstallPath)) { ForEach ($Folder in @("data", "download", "config")) { New-Item -Path (Join-Path $InstallPath $Folder) -ItemType Directory | Out-Null } Install-PackageProvider -Name Nuget -Force Get-Date | Out-File -Encoding UTF8 -FilePath "$($InstallPath)/Installed.txt" } else { Write-Host "Install folder is Already created !" } Read-Host "Start..., press enter" } process { if ([string]$ProfilPath) { $configuration = Confirm-Configuration -Configuration (Import-Configuration -Profile $ProfilPath) Foreach ($Section in $configuration.PSobject.Properties | Select-Object Name, Value) { if (($Section.Value).count -gt 1) { foreach ($Item in $Section.Value) { if (Test-Command -cmdname $Section.Name) { Write-Host $Section.Name $params = '-Args $Item' Invoke-Expression "$($Section.Name) $params" } } } else { if (Test-Command -cmdname $Section.Name) { Write-Host $Section.Name $params = '-Args $Section.Value' Invoke-Expression "$($Section.Name) $params" } } } # Save-Configuration -Configuration $configuration } Read-Host "End..., press enter" } } |