Logeto.psm1

$ScriptDir = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent

. ($ScriptDir + "./Global.ps1")
. ($ScriptDir + "./Terminal.ps1")
. ($ScriptDir + "./TerminalService.ps1")

<#
    Install any Logeto product
#>

function Install-LogetoProduct
{
    Param(

        [parameter(Mandatory=$true)]
        [ValidateSet('Terminal', 'TerminalService')]
        $ProductName,
        [parameter(Mandatory=$false)]
        $UpdateInfo
    )

    Write-LogetoProgress "Installing Logeto product $ProductName." "Install-LogetoProduct"

    if ($ProductName -eq 'Terminal')
    {
        if (!(UpdateInfo))
        {
            $UpdateInfo = Get-LogetoTerminalUpdateInfo
        }
        Install-LogetoTerminal $UpdateInfo
    }
    elseif ($ProductName -eq 'TerminalService')
    {
        if (!(UpdateInfo))
        {
            $UpdateInfo = Get-LogetoTerminalServiceUpdateInfo
        }
        Install-LogetoTerminalService $UpdateInfo
    }
}

<#
    Uninstall any Logeto product
#>

function Uninstall-LogetoProduct
{
    Param(
        [parameter(Mandatory=$true)]
        [ValidateSet('Terminal', 'TerminalService')]
        $ProductName
    )

    Write-LogetoProgress "Uninstalling Logeto product $ProductName." "Uninstall-LogetoProduct"

    if ($ProductName -eq 'Terminal')
    {
        Uninstall-LogetoTerminal 
    }
    elseif ($ProductName -eq 'TerminalService')
    {
        Uninstall-LogetoTerminalService 
    }
}

<#
    Prepare any Logeto product environment (e.g. install drivers, update system pre or post installation etc.)
#>

function Set-LogetoProductEnvironment
{
    Param(
        [parameter(Mandatory=$true)]
        [ValidateSet('Terminal', 'TerminalService')]
        $ProductName,
        [parameter(Mandatory=$true)]        
        $Components
    )

    Write-LogetoProgress "Setting Logeto product environment $Components for $ProductName." "Set-LogetoProductEnvironment"

    if ($ProductName -eq 'Terminal')
    {
        Set-LogetoTerminalEnvironment $Components
    }
    elseif ($ProductName -eq 'TerminalService')
    {
        Set-LogetoTerminalServiceEnvironment $Components
    }
}

<#
    Remove any Logeto product environment (e.g. install drivers, update system pre or post installation etc.)
#>

function Clear-LogetoTerminalEnvironment
{
        Param(
        [parameter(Mandatory=$true)]
        [ValidateSet('Terminal', 'TerminalService')]
        $ProductName,
        [parameter(Mandatory=$true)]        
        $Components
    )

    Write-LogetoProgress "Removing Logeto product environment $Components for $ProductName." "Clear-LogetoProductEnvironment"

    if ($ProductName -eq 'Terminal')
    {
        Clear-LogetoTerminalEnvironment $Components
    }
    elseif ($ProductName -eq 'TerminalService')
    {
        Clear-LogetoTerminalServiceEnvironment $Components
    }
}