ps/Modules/Alkami.PowerShell.SDK/Public/Set-AlkamiConfiguration.ps1

64 lines
1.9 KiB
PowerShell
Raw Normal View History

2023-05-30 22:51:22 -07:00
function Set-AlkamiConfiguration {
<#
.SYNOPSIS
Used to configure Alkami specific settings to help ensure a smooth developer experience
.PARAMETER Configuration
This is a shortened variable for the configuration being set to the chosen value
Aliased to: Setting, Configuration, Key
.PARAMETER On
Aliased to: Enable
.PARAMETER Off
Aliased to: Disable
.PARAMETER Default
Aliased to: Remove
#>
[CmdletBinding(DefaultParameterSetName = 'On')]
param (
[Parameter(Mandatory = $true, Position = 0)]
[ValidateSet('InstallerUseSymlink','StartServicesOnInstall')]
[Alias('Setting')]
[Alias('Key')]
[string]$Configuration,
[Parameter(ParameterSetName = 'On')]
[Alias('Enable')]
[switch]$On,
[Parameter(ParameterSetName = 'Off')]
[Alias('Disable')]
[switch]$Off,
[Parameter(ParameterSetName = 'Default')]
[Alias('Remove')]
[switch]$Default
)
switch ($Configuration) {
'StartServicesOnInstall' {
$variableName = 'Alkami.Installer.StartOnInstall'
$isEnvironmentVariable = $true
}
'InstallerUseSymlink' {
$variableName = 'Alkami.Installer.UseSymlink'
$isEnvironmentVariable = $true
}
}
if ($isEnvironmentVariable) {
if (!$Off -and !$Default) {
Set-EnvironmentVariable -Name $variableName -Value 'true' -StoreName User
Set-EnvironmentVariable -Name $variableName -Value 'true' -StoreName Process
}
if ($Off) {
Set-EnvironmentVariable -Name $variableName -Value 'false' -StoreName User
Set-EnvironmentVariable -Name $variableName -Value 'false' -StoreName Process
}
if ($Default) {
Remove-EnvironmentVariable -Name $variableName -StoreName User
Remove-EnvironmentVariable -Name $variableName -StoreName Process
}
}
}