import groovy.json.JsonSlurper

ext {
    buildVersionCode = {
        def commitsCount = "git rev-list --all --count".execute().text.trim().toInteger()

        commitsCount
    }

    buildVersionName = {
        def inputFile = file("${System.getProperty("user.dir")}/../package.json")
        if (!inputFile.canRead()) {
            throw new GradleException("Could not read ${inputFile}, check the root directory")
        }
        def packageJson = new JsonSlurper().parseText(inputFile.text)
        def packageVersion = packageJson.version
        def devIndex = packageVersion.indexOf("-dev")
        def versionName = packageVersion
        if (devIndex != -1) {
            def sha1 = "git rev-parse --short HEAD".execute().text.trim()
            def version = packageVersion.substring(0, devIndex)
            versionName = "${version}-${sha1}"
        }

        versionName
    }

    buildKeystoreProps = {
        def keystorePropertiesFile = file("${System.getProperty("user.dir")}/../config/keystore.properties")
        if (!keystorePropertiesFile.canRead()) {
            throw new GradleException("Could not read ${keystorePropertiesFile}, check the root directory")
        }
        def keystoreProperties = new Properties()
        keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

        keystoreProperties
    }
}
