import org.ajoberstar.grgit.Grgit

buildscript {
  ext.kotlinVersion = '1.4.0'

  repositories {
    jcenter()
    google()
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath 'org.ajoberstar:grgit:1.9.3'
    classpath 'com.android.tools.build:gradle:4.1.0-rc03'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
    classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlinVersion"
    classpath 'org.ajoberstar:grgit:1.9.3'
    classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.6"
  }
}

allprojects {
  repositories {
    google()
    jcenter()
    maven {
      url "https://jitpack.io"
    }
    maven {
      url "https://oss.sonatype.org/content/repositories/snapshots/"
    }
    flatDir {
      dirs 'libs'
    }
  }
}

ext {
  git = Grgit.open(currentDir: project.rootDir)
  gitSha = git.head().id
  gitBranch = git.branch.getCurrent().name
}

task clean(type: Delete) {
  delete rootProject.buildDir
}
