Private/_GlobalVariables.ps1

# _GlobalVariables.ps1

set-alias nano 'C:\Program Files\Git\usr\bin\nano.exe'

function Set-ProjectVariables {
    param (
        
    )
    
    if (!$global:devops_projectFile) {
        Write-Verbose "Setting Project Variables (Empty)"
        $global:devops_projectTitle = "(No Project Selected)"
        $global:devops_projectLocation = "(No Project Selected)"
        $global:devops_gitRepo = "(No Project Selected)"
        $global:devops_selectedSubscriptionName = "(No Project Selected)"  
        $global:devops_selectedSubscription = $null      
        $global:devops_AzureKeyVault = "(No Project Selected)"
        $global:devops_ClientID = "(No Project Selected)"
        $global:devops_TenantID = "(No Project Selected)"
        $global:devops_DevOpsProduct = "(No Project Selected)"
        $global:devops_Branch = "(No Project Selected)"
        $global:devops_DataverseSolutionsAdded = $false
        $global:devops_OrgName = "(No Project Selected)"
        $global:devops_ProjectName = "(No Project Selected)"

    }
    else {
        Write-Verbose "Setting Project Variables"
        $global:devops_projectTitle = "$($global:devops_projectFile.gitRepo)"
        if ($global:devops_projectConfigID) {
            $global:devops_projectLocation = "$($global:devops_configFile.Projects[$global:devops_projectConfigID].ProjectLocation)"
        }
        $global:devops_gitRepo = "$($global:devops_projectFile.gitRepo)"
        $global:devops_selectedSubscriptionName = "$($global:devops_projectFile.selectedSubscriptionName)"
        $global:devops_selectedSubscription = "$($global:devops_projectFile.selectedSubscription)"
        $global:devops_AzureKeyVault = "$($global:devops_projectFile.AzureKeyVaultName)"
        $global:devops_ClientID = "$($global:devops_projectFile.ClientID)"
        $global:devops_TenantID = "$($global:devops_projectFile.TenantID)"
        $global:devops_DevOpsProduct = "$($global:devops_projectFile.DevOpsProduct)"
        if ($global:devops_projectFile.DataverseSolutions.Count -gt 0) {
            $global:devops_DataverseSolutionsAdded = $true
        }
        $global:devops_Branch = git branch --show-current
        $global:devops_BaseBranch = "$($global:devops_projectFile.BaseBranch)"
        $global:devops_FullTool = $true
        $global:devops_OrgName = "$($global:devops_projectFile.OrgName)"
        $global:devops_ProjectName = "$($global:devops_projectFile.Project)"
    }    
}

function Set-ToolVariables {
    param (
        
    )
    Write-Verbose "Setting Tool Variables"
    if (!(Test-Path "$env:APPDATA\Capgemini.PowerPlatform.DevOps")) {
        New-Item -Path "$env:APPDATA\Capgemini.PowerPlatform.DevOps" -ItemType Directory
    }
    if (!(Test-Path "$env:APPDATA\Capgemini.PowerPlatform.DevOps\devopsConfig.json")) {
        Copy-Item (Join-Path $PSScriptRoot "\devopsConfig.json") -Destination "$env:APPDATA\Capgemini.PowerPlatform.DevOps\devopsConfig.json"
    }

    #Tool Specific
    $global:devops_continue = $true
    $global:devops_devMode = $false
    $global:devops_message

    # Generated using https://patorjk.com/software/taag/ - font 'Standard'
    # Extra backticks are because they're escape chars in Powershell (so need two to render one)
    $global:devops_logo = @"
   ____ _ _ ____ ____ ____ ___
  / ___|__ _ _ __ __ _ ___ _ __ ___ (_)_ __ (_) | _ \| _ \| _ \ / _ \
 | | / _`` | '_ \ / _`` |/ _ \ '_ `` _ \| | '_ \| | | |_) | |_) | | | | | | |
 | |__| (_| | |_) | (_| | __/ | | | | | | | | | | | __/| __/| |_| | |_| |
  \____\__,_| .__/ \__, |\___|_| |_| |_|_|_| |_|_| |_| |_| |____/ \___/
            |_| |___/
 
"@


    $global:devops_projectFile
    $global:devops_configFile = Get-Content ("$env:APPDATA\Capgemini.PowerPlatform.DevOps\devopsConfig.json") | ConvertFrom-Json
    [string]$getVersion = Get-ManifestValue (Join-Path $PSScriptRoot "\..\Capgemini.PowerPlatform.DevOps.psd1") -PropertyName 'ModuleVersion' -Passthru
    [version]$global:devops_version = $getVersion.Replace("'", "") 
    $global:devops_isDocker = (Test-InsideDockerContainer)
    if (!$global:devops_isDocker -and (!($host.Name -match 'ConsoleHost'))) {
        $global:devops_isDocker = $true
    }    
}