Private/Shared/JsonConfig/Initialize-ConfigFile.ps1
function Initialize-ConfigFile { [CmdletBinding()] param() $configPaths = Get-ConfigPaths $existingConfig = $configPaths | Where-Object { Test-Path $_ } | Select-Object -First 1 if ($existingConfig) { Write-Verbose "Using existing config file: $existingConfig" return } # No config file exists, create one if ($IsWindows -or $null -eq $IsWindows) { $configDir = Join-Path -Path $env:USERPROFILE -ChildPath ".PowerTree" } else { $configDir = Join-Path -Path $env:HOME -ChildPath ".PowerTree" } if (-not (Test-Path -Path $configDir)) { New-Item -Path $configDir -ItemType Directory -Force | Out-Null Write-Verbose "Created directory: $configDir" } $configPath = Join-Path -Path $configDir -ChildPath "config.json" try { $defaultConfig = Get-DefaultConfig $defaultConfig | ConvertTo-Json -Depth 4 | Out-File -FilePath $configPath -Encoding utf8 Write-Verbose "Created new config file at: $configPath" } catch { Write-Warning "Failed to create config file: $_" } } |