Config/Update-TFSConfigFile.ps1

function Update-TFSConfigFile {
    Param(
        # JSON string containing configuration keys and values to use
        [Parameter(Mandatory=$false)]
        [string]
        $Config
    )
    if (!(Test-Path (Get-TFSConfigPath))) {
        New-TFSConfigFile
    }

    if ($null -eq (Get-TFSConfigKeyValue 'collectionUrl')) {
        Set-TFSConfigKeyValue -KeyName 'collectionUrl' -KeyValue 'Azure DevOps collection URL'
    }

    if ($null -eq (Get-TFSConfigKeyValue 'user')) {
        Set-TFSConfigKeyValue -KeyName 'user' -KeyValue 'username'
    }

    if ($null -eq (Get-TFSConfigKeyValue 'password')) {
        Set-TFSConfigKeyValue -KeyName 'password' -KeyValue 'password'
    }

    if ($null -eq (Get-TFSConfigKeyValue 'translationKey')) {
        Set-TFSConfigKeyValue -KeyName 'translationKey' -KeyValue 'translation secret key'
    }

    if ($null -eq (Get-TFSConfigKeyValue 'codeSigningCertThumbprint')) {
        Set-TFSConfigKeyValue -KeyName 'codeSigningCertThumbprint' -KeyValue 'code signing certificate thumbprint'
    }

    if ($null -eq (Get-TFSConfigKeyValue 'businessCentralLicenceFile')) {
        Set-TFSConfigKeyValue -KeyName 'businessCentralLicenceFile' -KeyValue 'flf licence file for Business Central Containers'
    }

    if ($null -eq (Get-TFSConfigKeyValue 'bcLicenceFile')) {
        Set-TFSConfigKeyValue -KeyName 'bcLicenceFile' -KeyValue 'bclicence licence file for Business Central Containers'
    }

    if ($null -eq (Get-TFSConfigKeyValue 'navLicenceFile')) {
        Set-TFSConfigKeyValue -KeyName 'navLicenceFile' -KeyValue 'licence file for NAV containers'
    }

    if ($null -eq (Get-TFSConfigKeyValue 'buildHelperURL')) {
        Set-TFSConfigKeyValue -KeyName 'buildHelperURL' -KeyValue 'https://github.com/CleverDynamics/al-build-helper/raw/master/Clever%20Dynamics_Build%20Helper.app'
    }

    if ($null -eq (Get-TFSConfigKeyValue 'buildHelperBC14URL')) {
        Set-TFSConfigKeyValue -KeyName 'buildHelperBC14URL' -KeyValue 'https://github.com/CleverDynamics/al-build-helper/raw/master/Clever%20Dynamics_Build%20Helper_BC14.app'
    }

    if ($null -eq (Get-TFSConfigKeyValue 'translationDictionaryPath')) {
        Set-TFSConfigKeyValue -KeyName 'translationDictionaryPath' -KeyValue (Join-Path (Split-Path (Get-TFSConfigPath) -Parent) 'dictionary.xml')
    }

    if ($null -eq (Get-TFSConfigKeyValue 'ftpServer')) {
        Set-TFSConfigKeyValue -KeyName 'ftpServer' -KeyValue 'FTP server'
    }

    if ($null -eq (Get-TFSConfigKeyValue 'ftpUser')) {
        Set-TFSConfigKeyValue -KeyName 'ftpUser' -KeyValue 'FTP user name'
    }

    if ($null -eq (Get-TFSConfigKeyValue 'ftpPassword')) {
        Set-TFSConfigKeyValue -KeyName 'ftpPassword' -KeyValue 'FTP password'
    }

    if ($null -eq (Get-TFSConfigKeyValue 'containerMemoryLimit')) {
        Set-TFSConfigKeyValue -KeyName 'containerMemoryLimit' -KeyValue '6G'
    }

    if ($Config -ne $null) {
        $ConfigJson = ConvertFrom-Json $Config
        foreach ($Key in $ConfigJson.PSObject.Properties) {
            if ($null -ne (Get-TFSConfigKeyValue $Key.Name)) {
                Set-TFSConfigKeyValue -KeyName $Key.Name -KeyValue $Key.Value
            }
        }
    }
}

Export-ModuleMember -Function Update-TFSConfigFile