SetUpBasic.ps1


function PrivateSubUpdate{
    Update-Module -Name SetUpBasic
    #Get-InstalledModule -Name SetUpBasic -AllVersions | Where-Object {$_.Version -ne $(Get-InstalledModule -Name SetUpBasic).Version} | Uninstall-Module -Verbose
    #Import-Module -Name SetUpBasic -Force
    Write-Host "To update your current shell session you need to reload the module with 'Import-Module -Name SetUpBasic -Force' "
}

function PrivateSubClean{
    param (
        [Parameter(Mandatory)]
        [string]$Name
     )

     $LatestModuls = (Get-Module -ListAvailable $Name) | Sort-Object Version -Descending
     $LatestModul = $LatestModuls[0]
     

     foreach ($CurrentModul in $(Get-Module -ListAvailable $Name)) {
        if ($CurrentModul.Version -ne $LatestModul.Version) 
        {
            Write-Host "Remove-Module -FullyQualifiedName @{ModuleName = """$Name"""; ModuleVersion = """$($CurrentModul.Version)"""}"
            Remove-Module -FullyQualifiedName @{ModuleName = "$Name"; ModuleVersion = "$($CurrentModul.Version)"} -ErrorAction SilentlyContinue
            Write-Host "Uninstall-Module -name $Name -RequiredVersion $($CurrentModul.Version)"
            Uninstall-Module -name $Name -RequiredVersion $CurrentModul.Version -ErrorAction SilentlyContinue
        }
     }
     Write-Host "Current: $($LatestModul) $($LatestModul.Version)"
}

function PrivateSubIsAdmin {
    $currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
    $result = $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
    Write-Host "$result"
}

function DownloadString {
    
    param (
        [Parameter(Mandatory)]
        [string]$url
    )

    $uri = [uri]::new($url)
    

    try {
        $str = (New-Object Net.WebClient).DownloadString($uri.OriginalString) 
    }
    catch {
        Write-Host "DownloadString thrown a exception"
        Write-Host "$($PSItem.Exception.Message)"
        $str = ""
    }
    return [string]$str
}



#SubOldModulCleanUp -ModulName "SetUpBasic"

#$ret = DownloadString -url "https://github.com/microsoft/winget-cli/releases/latest"

#ExtractLinks2 -html $ret -url "https://github.com/microsoft/winget-cli/releases/latest"