PSGradleManager.psm1

<#
.SYNOPSIS
gradle をインストールします。
 
.PARAMETER type
* bin - binary のみをインストールします。
* all - manual と sample も含めた完全版をインストールします。
 
.PARAMETER v410
gradle v4.10 をインストールします。
 
.PARAMETER v4101
gradle v4.10.1 をインストールします。
#>

function Install-Gradle([string]$type,[switch]$v410,[switch]$v4101){
    $version=$null

    if($v410){
        $version="4.10"
    }elseif($v4101){
        $version="4.10.1"
    }

    if($version -eq $null){
        Write-Output "バージョンを指定してください。"
        return
    }

    if($type -ne "all" -and $type -ne "bin"){
        Write-Output "type オプションの値が不正です。 bin または all を指定してください。"
        return
    }

    Uninstall-Gradle
    
    if($type -eq "bin"){
        Invoke-WebRequest "https://services.gradle.org/distributions/gradle-${version}-bin.zip" -OutFile "${HOME}/gradle.zip"
    }elseif($type -eq "all"){
        Invoke-WebRequest "https://services.gradle.org/distributions/gradle-${version}-all.zip" -OutFile "${HOME}/gradle.zip"
    }
    
    Expand-Archive "${HOME}/gradle.zip" $HOME

    Remove-Item "${HOME}/gradle.zip"
}

<#
.SYNOPSIS
gradle をアンインストールします。
#>

function Uninstall-Gradle(){
    if(Test-Path "${HOME}/gradle-[0-9]*"){
        Remove-Item -Recurse "${HOME}/gradle-[0-9]*"
    }
}

<#
.SYNOPSIS
環境変数 Path へ gradle がインストールされているフォルダーのパスを追加します。
#>

function Set-GradlePath(){
    $gradle_path=(Resolve-Path "${HOME}/gradle-[0-9]*/bin")
    $env:Path="${env:Path}${gradle_path};"
}