$InvocationPath = Split-Path -Path $MyInvocation.MyCommand.Path -Parent


# Get processor architecture (todo: support ARM64 x86 emulation)
#
function Get-ProcessorArchitecture
{
    return $env:AssessmentExecutionArchitecture
} # EOF

function Get-Real-ProcessorArchitecture
{
    if (($env:PROCESSOR_ARCHITECTURE -eq "amd64") -or ($env:PROCESSOR_ARCHITEW6432 -eq "amd64")) {
        return "amd64"
    }
    elseif (($env:PROCESSOR_ARCHITECTURE -eq "arm64") -or ($env:PROCESSOR_ARCHITEW6432 -eq "arm64")) {
        return "arm64"
    }
    else {
        return "x86"
    }

} # EOF

function Clear-RecycleBin
{
    $Shell = New-Object -ComObject Shell.Application 
    $RecBin = $Shell.Namespace(0xA) 
    $RecBin.Items() | %{Remove-Item $_.Path -Recurse -Confirm:$false}
} # EOF


function Get-CSSupported
{
    $avail = powercfg /a
    $line = ($avail | select-string "are not available" ).LineNumber

    # if there are unavailable power states...
    if ($line)
    {
        # check where Conncted Standby is listed
        $CSLine = ($avail | select-string "S0 Low Power Idle" ).LineNumber
    
        # if it's available, then run sleepstudy report
        if ($CSline -lt $line)
        {
            return $true
        }
        else {

            return $false
        }
    }
}

Function Get-FreeDiskSpace
{
    $disk = Get-WmiObject Win32_LogicalDisk  -Filter "DeviceID='C:'" | Select-Object Size,FreeSpace
    $freeSpace =  "{0:N2}" -f ($disk.FreeSpace / 1073741824)
    return $freeSpace
} # EOF



Export-ModuleMember -Function Get-ProcessorArchitecture
Export-ModuleMember -Function Get-Real-ProcessorArchitecture
Export-ModuleMember -Function Clear-RecycleBin
Export-ModuleMember -Function Get-CSSupported
Export-ModuleMember -Function Get-FreeDiskSpace