Ndimensions.Automation.NafSetup.psm1

<#
    .SYNOPSIS
    Ndimensions Automation Framework Setup
 
    .DESCRIPTION
    Ndimensions Automation Framework Setup
    - Prepare machine for downloading git repositories. Installs git related client software
    - Downloads the NAF repositories
 
    .NOTES
    Author : hillesheim@n-dimensions.de
    Version : 2.9
    DateLastChanged : 2024-02-17
#>
 

Write-Host "Load module 'Ndimensions.Automation.NafSetup' ... "

#region DECLARATION

#region USER_VARIABLES

# ********************************************************************************************
# Artifact settings

[ArtifactSettings] $artifactSettings = [ArtifactSettings]::new(); 
$artifactSettings.DevopsUrl = "https://pkgs.dev.azure.com"; 
$artifactSettings.OrganizationName = "n-dimensions-dev"; 
$artifactSettings.ProjectName = "NAF"; 
$artifactSettings.CredProviderInstallUrl = "https://aka.ms/install-artifacts-credprovider.ps1"; 

# ********************************************************************************
# Nuget default settings

[NugetSettings] $nugetSettings = [NugetSettings]::new();     
$nugetSettings.NugetExeDownloadUrl = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"; 
$nugetSettings.NuGetSourceName = "Ndimensions AzArtifacts"; 
$nugetSettings.NugetProgramFolder = "C:\Program Files\Nuget"; 
$nugetSettings.NugetPackagesInstallFolder = "C:\Program Files\Nuget\Packages"; 

# ********************************************************************************************
# ********************************************************************************************
# Nuget packages
[NugetPackage[]] $nugetPackages = @(); 

# ********************************************************************************************
# ... Package "Ndimensions Automation Modules"

[NugetPackage] $packageNafAutomation = [NugetPackage]::new(); 
$packageNafAutomation.Name = "Ndimensions Automation Modules"; 
$packageNafAutomation.BaseName = "Ndimensions.Automation.Modules"; 
$packageNafAutomation.Description = "Ndimensions Automation Modules: Contains common PowerShell modules for the 'Ndimensions Automation Framework' (NAF)"; 
$packageNafAutomation.DownloadFolder = "C:\_NAF\Modules"; 
$packageNafAutomation.ArtifactFeedId = "NdimensionsAutomationModules"; 
$packageNafAutomation.ArtifactFeedUrl = `
    Get-ArtifactFeedUrl `
        -NugetPackage $packageNafAutomation `
        -ArtifactSettings $artifactSettings; 

$nugetPackages += $packageNafAutomation; 

# ********************************************************************************************
# ... Package "Ndimensions Deployment Modules"

[NugetPackage] $packageNafDeployment = [NugetPackage]::new(); 
$packageNafDeployment.Name = "Ndimensions Deployment Modules"; 
$packageNafDeployment.BaseName = "Ndimensions.Deployment.Modules"; 
$packageNafDeployment.Description = "Ndimensions Deployment Modules"; 
$packageNafDeployment.DownloadFolder = "C:\_NAF\Modules"; 
$packageNafDeployment.ArtifactFeedId = "NdimensionsDeploymentModules"; 
$packageNafDeployment.ArtifactFeedUrl = `
    Get-ArtifactFeedUrl `
        -NugetPackage $packageNafDeployment `
        -ArtifactSettings $artifactSettings; 

$nugetPackages += $packageNafDeployment; 

# ********************************************************************************************
# ... Package "Ndimensions.Automation.NafSetup"

[NugetPackage] $packageNafSetup = [NugetPackage]::new(); 
$packageNafSetup.Name = "Ndimensions Automation NAF Setup"; 
$packageNafSetup.BaseName = "Ndimensions.Automation.NafSetup" 
$packageNafSetup.Description = "Bootstrap Module for NAF framework. Hosted on PowerShell Gallery"; 
$packageNafSetup.DownloadFolder = "C:\_NAF\Application\Ndimensions.Automation.NafSetup\Module"; 
$packageNafSetup.ArtifactFeedId = "NdimensionsAutomationNafSetup"; 
$packageNafSetup.ArtifactFeedUrl = `
    Get-ArtifactFeedUrl `
        -NugetPackage $packageNafSetup `
        -ArtifactSettings $artifactSettings; 

$nugetPackages += $packageNafSetup; 

# ********************************************************************************************
# ... Package "Ndimensions.Automation.ClassroomSetup"

[NugetPackage] $packageClassroomSetup = [NugetPackage]::new(); 
$packageClassroomSetup.Name = "Ndimensions Automation Classroom Setup"; 
$packageClassroomSetup.BaseName = "Ndimensions.Automation.ClassroomSetup" 
$packageClassroomSetup.Description = "PowerShell scripts to run the classroom setup on master and satellite. Hosted on Azure Artifacts"; 
$packageClassroomSetup.DownloadFolder = "C:\_NAF\Application\Ndimensions.Automation.ClassroomSetup\Module"; 
$packageClassroomSetup.ArtifactFeedId = "NdimensionsAutomationClassroomSetup"; 
$packageClassroomSetup.ArtifactFeedUrl = `
    Get-ArtifactFeedUrl `
        -NugetPackage $packageClassroomSetup `
        -ArtifactSettings $artifactSettings; 

$nugetPackages += $packageClassroomSetup; 

# ********************************************************************************************
# ... Package "Ndimensions ClassroomServer"

[NugetPackage] $packageClassroomServer = [NugetPackage]::new(); 
$packageClassroomServer.Name = "Ndimensions ClassroomServer"; 
$packageClassroomServer.BaseName = "Ndimensions.ClassroomServer"; 
$packageClassroomServer.Description = "Ndimensions ClassroomServer"; 
$packageClassroomServer.DownloadFolder = "C:\_NAF\Application\Ndimensions.ClassroomServer\Application"; 
$packageClassroomServer.ArtifactFeedId = "NdimensionsClassroomServer"; 
$packageClassroomServer.ArtifactFeedUrl = `
    Get-ArtifactFeedUrl `
        -NugetPackage $packageClassroomServer `
        -ArtifactSettings $artifactSettings; 

$nugetPackages += $packageClassroomServer; 

# ********************************************************************************************
# ... Package "Ndimensions SQLIO Helper"

[NugetPackage] $packageSqlioHelper = [NugetPackage]::new(); 
$packageSqlioHelper.Name = "Ndimensions SQLIO Helper"; 
$packageSqlioHelper.BaseName = "Ndimensions.SQLIO"; 
$packageSqlioHelper.Description = "Ndimensions PowerShell Modules for SQLIO.EXE"; 
$packageSqlioHelper.DownloadFolder = "C:\_NAF\Application\Ndimensions.Sqlio"; 
$packageSqlioHelper.ArtifactFeedId = "NdimensionsApplicationSqlioHelper"; 
$packageSqlioHelper.ArtifactFeedUrl = `
    Get-ArtifactFeedUrl `
        -NugetPackage $packageSqlioHelper `
        -ArtifactSettings $artifactSettings; 

$nugetPackages += $packageSqlioHelper; 

# ********************************************************************************************
# ... Package "Ndimensions Mouse Context Items Helper"

[NugetPackage] $packageMouseContext = [NugetPackage]::new(); 
$packageMouseContext.Name = "Ndimensions Mouse Context Items Helper";
$packageMouseContext.BaseName = "Ndimensions.Helper.MouseContextItems"; 
$packageMouseContext.Description = "Ndimensions PowerShell Application for Mouse Context Items"; 
$packageMouseContext.DownloadFolder = "C:\_NAF\Application\Ndimensions.Helper.MouseContextItems\Module"; 
$packageMouseContext.ArtifactFeedId = "NdimensionsHelperMouseContextItems"; 
                                       
$packageMouseContext.ArtifactFeedUrl = `
    Get-ArtifactFeedUrl `
        -NugetPackage $packageMouseContext `
        -ArtifactSettings $artifactSettings; 

$nugetPackages += $packageMouseContext; 

# ********************************************************************************************
# ... Package "Ndimensions.Helper.TextToTable"

[NugetPackage] $packageTextToTable = [NugetPackage]::new(); 
$packageTextToTable.Name = "Ndimensions Text-to-Table Helper"; 
$packageTextToTable.BaseName = "Ndimensions.Helper.TextToTable"; 
$packageTextToTable.Description = "Ndimensions PowerShell Application for Mouse Context Items"; 
$packageTextToTable.DownloadFolder = "C:\_NAF\Application\Ndimensions.Helper.TextToTable\Module"; 
$packageTextToTable.ArtifactFeedId = "NdimensionsHelperTextToTable"; 
$packageTextToTable.ArtifactFeedUrl = `
    Get-ArtifactFeedUrl `
        -NugetPackage $packageTextToTable `
        -ArtifactSettings $artifactSettings; 

$nugetPackages += $packageTextToTable; 

# ********************************************************************************************
# ... Package "Ndimensions.Helper.Qa"

[NugetPackage] $packageQa = [NugetPackage]::new(); 
$packageQa.Name = "Ndimensions QA Helper"; 
$packageQa.BaseName = "Ndimensions.Helper.Qa"; 
$packageQa.Description = "Ndimensions QA Helper"; 
$packageQa.DownloadFolder = "C:\_NAF\Application\Ndimensions.Helper.Qa\Module"; 
$packageQa.ArtifactFeedId = "NdimensionsHelperQa"; 
$packageQa.ArtifactFeedUrl = `
    Get-ArtifactFeedUrl `
        -NugetPackage $packageQa `
        -ArtifactSettings $artifactSettings; 

$nugetPackages += $packageQa; 

# ********************************************************************************************
# ... Package "Ndimensions.Helper.HtmlSlides"

[NugetPackage] $packageHtmlSlides = [NugetPackage]::new(); 
$packageHtmlSlides.Name = "Ndimensions Html Slides Helper"; 
$packageHtmlSlides.BaseName = "Ndimensions.Helper.HtmlSlides"; 
$packageHtmlSlides.Description = "Ndimensions Html Slides Helper"; 
$packageHtmlSlides.DownloadFolder = "C:\_NAF\Application\Ndimensions.Helper.HtmlSlides\Module"; 
$packageHtmlSlides.ArtifactFeedId = "NdimensionsHelperHtmlSlides"; 
$packageHtmlSlides.ArtifactFeedUrl = `
    Get-ArtifactFeedUrl `
        -NugetPackage $packageHtmlSlides `
        -ArtifactSettings $artifactSettings; 

$nugetPackages += $packageHtmlSlides; 

# ********************************************************************************************
# ... Package "Ndimensions.Automation.FlaskApp"

[NugetPackage] $packageFlaskApp = [NugetPackage]::new(); 
$packageFlaskApp.Name = "Ndimensions Flask App"; 
$packageFlaskApp.BaseName = "Ndimensions.Automation.FlaskApp"; 
$packageFlaskApp.Description = "Ndimensions Flask App"; 
$packageFlaskApp.DownloadFolder = "C:\_NAF\Application\Ndimensions.Automation.FlaskApp\Module"; 
$packageFlaskApp.ArtifactFeedId = "NdimensionsAutomationFlaskApp"; 
$packageFlaskApp.ArtifactFeedUrl = `
    Get-ArtifactFeedUrl `
        -NugetPackage $packageFlaskApp `
        -ArtifactSettings $artifactSettings; 

$nugetPackages += $packageFlaskApp; 

# ********************************************************************************************

#endregion
#endregion

#region EXPORT

Export-ModuleMember -Variable nugetSettings; 
Export-ModuleMember -Variable artifactSettings; 
Export-ModuleMember -Variable nugetPackages; 

#endregion