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('logeto-terminal', 'logeto-terminal-service')]
        $ProductName
    )

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

    if ($ProductName -eq 'logeto-terminal')
    {
        Install-LogetoTerminal (Get-LogetoTerminalUpdateInfo) 
    }
    elseif ($ProductName -eq 'logeto-terminal-service')
    {
        Install-LogetoTerminalService (Get-LogetoTerminalServiceUpdateInfo) 
    }
}

<#
    Uninstall any Logeto product
#>

function Uninstall-LogetoProduct
{
    Param(
        [parameter(Mandatory=$true)]
        [ValidateSet('logeto-terminal', 'logeto-terminal-service')]
        $ProductName
    )

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

    if ($ProductName -eq 'logeto-terminal')
    {
        Uninstall-LogetoTerminal 
    }
    elseif ($ProductName -eq 'logeto-terminal-service')
    {
        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('logeto-terminal', 'logeto-terminal-service')]
        $ProductName,
        [parameter(Mandatory=$true)]        
        $Components
    )

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

    if ($ProductName -eq 'logeto-terminal')
    {
        Set-LogetoTerminalEnvironment $Components
    }
    elseif ($ProductName -eq 'logeto-terminal-service')
    {
        Set-LogetoTerminalServiceEnvironment $Components
    }
}