import org.ajoberstar.grgit.Grgit

buildscript {
  ext {
    composeVersion = '1.0.0-beta07'
    kotlinVersion = '1.4.32'
    daggerVersion = '2.34'
  }

  repositories {
    google()
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath 'org.ajoberstar:grgit:1.9.3'
    classpath 'com.android.tools.build:gradle:7.0.0-beta01'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
    classpath 'org.ajoberstar:grgit:1.9.3'
    classpath "net.ltgt.gradle:gradle-errorprone-plugin:2.0.1"
    classpath 'com.vanniktech:gradle-maven-publish-plugin:0.13.0'
    classpath 'org.jetbrains.dokka:dokka-gradle-plugin:1.4.10.2'
  }
}

allprojects {
  repositories {
    google()
    mavenCentral()
    maven {
      url "https://jitpack.io"
    }
    maven {
      url "https://kotlin.bintray.com/kotlinx"
    }
    maven {
      url "https://oss.sonatype.org/content/repositories/snapshots/"
    }
  }
}

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

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