Search code examples
gradle

How to detect the current OS from Gradle


I found this answer about how to do it with Groovy:

Detecting the platform (Window or Linux) by Groovy/Grails:

if (System.properties['os.name'].toLowerCase().contains('windows')) {
    println "it's Windows"
} else {
    println "it's not Windows"
}

Is there a better way?


Solution

  • Actually, I looked at the Gradle project, and this looks a little cleaner as it uses Ant's existing structure:

    import org.apache.tools.ant.taskdefs.condition.Os
    
    task checkWin() << {
        if (Os.isFamily(Os.FAMILY_WINDOWS)) {
            println "*** Windows "
        }
    }
    

    I found this in the following Gradle branch, and it seems to work nicely. gradle/gradle-core/branches/RB-0.3/build.gradle