/*
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

// Upload to Bintray
apply plugin: 'com.jfrog.bintray'

def getBintrayUsername() {
    return project.hasProperty('bintrayUsername') ? property('bintrayUsername') : System.getenv('BINTRAY_USERNAME')
}

def getBintrayApiKey() {
    return project.hasProperty('bintrayApiKey') ? property('bintrayApiKey') : System.getenv('BINTRAY_API_KEY')
}

def getBintrayGpgPassword() {
    return project.hasProperty('bintrayGpgPassword') ? property('bintrayGpgPassword') : System.getenv('BINTRAY_GPG_PASSWORD')
}

def getMavenCentralUsername() {
    return project.hasProperty('mavenCentralUsername') ? property('mavenCentralUsername') : System.getenv('MAVEN_CENTRAL_USERNAME')
}

def getMavenCentralPassword() {
    return project.hasProperty('mavenCentralPassword') ? property('mavenCentralPassword') : System.getenv('MAVEN_CENTRAL_PASSWORD')
}

def shouldSyncWithMavenCentral() {
    return project.hasProperty('syncWithMavenCentral') ? property('syncWithMavenCentral').toBoolean() : false
}

def dryRunOnly() {
    return project.hasProperty('dryRun') ? property('dryRun').toBoolean() : false
}

bintray {
    user = getBintrayUsername()
    key = getBintrayApiKey()
    configurations = ['archives']
    pkg {
        repo = bintrayRepo
        userOrg =  bintrayUserOrg
        name = bintrayName
        desc = bintrayDescription
        websiteUrl = projectUrl
        issueTrackerUrl = issuesUrl
        vcsUrl = scmUrl
        licenses = projectLicenses
        dryRun = dryRunOnly()
        override = true
        publish = true
        publicDownloadNumbers = true
        version {
            desc = bintrayDescription
            gpg {
                sign = true
                passphrase = getBintrayGpgPassword()
            }
            mavenCentralSync {
                sync = shouldSyncWithMavenCentral()
                user = getMavenCentralUsername()
                password = getMavenCentralPassword()
                close = '1' // If set to 0, you have to manually click release
            }
        }
    }
}
