AcuInstallerHelper_Functions_Config.ps1
function Get-ModuleBase { return Join-Path (Get-Module -Name 'AcuInstallerHelper').ModuleBase "AcuInstallerHelper_config.json" } function Get-AcuConfig { $configPath = Get-ModuleBase Write-AcuDebug "Loading configuration from: $configPath" if (!(Test-Path $configPath)) { Write-AcuWarning "Configuration file not found, creating default configuration" # Create default config if it doesn't exist $defaultConfig = @{ AcumaticaDir = "C:\Acumatica" AcumaticaSiteDir = "Sites" AcumaticaVersionDir = "Versions" InstallDebugTools = $false SiteType = "Production" } Save-AcuConfig -config $defaultConfig return $defaultConfig } try { $config = Get-Content -Path $configPath | ConvertFrom-Json Write-AcuDebug "Configuration loaded successfully" return $config } catch { Write-AcuError "Failed to load configuration file" throw "Failed to load configuration: $_" } } function Save-AcuConfig { param($config) $configPath = Get-ModuleBase Write-AcuDebug "Saving configuration to: $configPath" try { $config | ConvertTo-Json | Set-Content -Path $configPath Write-AcuDebug "Configuration saved successfully" } catch { Write-AcuError "Failed to save configuration" throw "Failed to save configuration: $_" } } # Get functions function Get-AcuDir { $value = (Get-AcuConfig).AcumaticaDir Write-AcuDebug "Acumatica directory: $value" return $value } function Get-AcuSiteDir { $value = (Get-AcuConfig).AcumaticaSiteDir Write-AcuDebug "Site directory: $value" return $value } function Get-AcuVersionDir { $value = (Get-AcuConfig).AcumaticaVersionDir Write-AcuDebug "Version directory: $value" return $value } function Get-InstallDebugTools { $config = Get-AcuConfig $value = if ($null -eq $config.InstallDebugTools) { $false } else { $config.InstallDebugTools } Write-AcuDebug "Install debug tools setting: $value" return $value } function Get-SiteType { $config = Get-AcuConfig $value = if ($null -eq $config.SiteType) { "Production" } else { $config.SiteType } Write-AcuDebug "Site type setting: $value" return $value } # Set functions function Set-AcuDir { param( [Parameter(Mandatory = $true)] [string] $NewPath ) Write-AcuHeader -Title "Update Acumatica Directory" -Subtitle "New Path: $NewPath" Write-AcuSection -Title "Validating Path" if (!(Test-Path $NewPath)) { Write-AcuWarning "Path does not exist, creating directory" try { New-Item -ItemType Directory -Path $NewPath -Force | Out-Null Write-AcuSuccess "Directory created successfully" } catch { Write-AcuError "Failed to create directory: $_" throw } } else { Write-AcuSuccess "Path exists and is accessible" } Write-AcuSection -Title "Updating Configuration" $config = Get-AcuConfig $oldPath = $config.AcumaticaDir $config.AcumaticaDir = $NewPath Save-AcuConfig $config Write-AcuSummary -Operation "Directory Update" -Status "Completed Successfully" -Details @{ "Setting" = "Acumatica Directory" "Previous Path" = $oldPath "New Path" = $NewPath } } function Set-AcuSiteDir { param( [Parameter(Mandatory = $true)] [string] $NewPath ) Write-AcuHeader -Title "Update Site Directory" -Subtitle "New Path: $NewPath" Write-AcuSection -Title "Updating Configuration" $config = Get-AcuConfig $oldPath = $config.AcumaticaSiteDir $config.AcumaticaSiteDir = $NewPath Save-AcuConfig $config Write-AcuSummary -Operation "Directory Update" -Status "Completed Successfully" -Details @{ "Setting" = "Site Directory" "Previous Path" = $oldPath "New Path" = $NewPath } } function Set-AcuVersionDir { param( [Parameter(Mandatory = $true)] [string] $NewPath ) Write-AcuHeader -Title "Update Version Directory" -Subtitle "New Path: $NewPath" Write-AcuSection -Title "Updating Configuration" $config = Get-AcuConfig $oldPath = $config.AcumaticaVersionDir $config.AcumaticaVersionDir = $NewPath Save-AcuConfig $config Write-AcuSummary -Operation "Directory Update" -Status "Completed Successfully" -Details @{ "Setting" = "Version Directory" "Previous Path" = $oldPath "New Path" = $NewPath } } function Set-InstallDebugTools { param( [Parameter(Mandatory = $true)] [bool] $Value ) Write-AcuHeader -Title "Update Debug Tools Setting" -Subtitle "Value: $(if ($Value) { 'Enabled' } else { 'Disabled' })" Write-AcuSection -Title "Updating Configuration" $config = Get-AcuConfig $oldValue = Get-InstallDebugTools $config.InstallDebugTools = $Value Save-AcuConfig $config Write-AcuSummary -Operation "Setting Update" -Status "Completed Successfully" -Details @{ "Setting" = "Install Debug Tools" "Previous Value" = $(if ($oldValue) { 'Enabled' } else { 'Disabled' }) "New Value" = $(if ($Value) { 'Enabled' } else { 'Disabled' }) } } function Set-SiteType { param( [Parameter(Mandatory = $true)] [ValidateSet("Dev", "Production")] [string] $Value ) Write-AcuHeader -Title "Update Site Type Setting" -Subtitle "Value: $Value" Write-AcuSection -Title "Updating Configuration" $config = Get-AcuConfig $oldValue = Get-SiteType $config.SiteType = $Value Save-AcuConfig $config Write-AcuSummary -Operation "Setting Update" -Status "Completed Successfully" -Details @{ "Setting" = "Default Site Type" "Previous Value" = $oldValue "New Value" = $Value } } function Read-AcuVersionPath { param ( [string]$version ) Write-AcuDebug "Checking if version exists: $version" $versionPath = Get-AcuVersionPath -versionNbr $version $exists = Test-Path $versionPath Write-AcuDebug "Version exists: $exists" return $exists } function Read-DefaultSiteInstallPath { $path = Join-Path (Get-AcuDir) (Get-AcuSiteDir) Write-AcuDebug "Default site install path: $path" return $path } |