defaultTasks("run")

repositories {
    mavenCentral()
}

tasks.register<Exec>("run-db") {
    group = "OpenCoDE"
    description = "Runs the database in background via docker"
    commandLine("docker", "compose", "up", "-d", "db")
}

tasks.register<Exec>("run-dashboard") {
    group = "OpenCoDE"
    description = "Runs the dashboard in background via docker."
    workingDir("../dashboard")
    commandLine("docker", "compose", "up", "-d", "dashboard")
}

tasks.register("run") {
    group = "OpenCoDE"
    description = "Runs the dataprovider against the database, you should be sure database is running."
    dependsOn(gradle.includedBuild("app").task(":backend:bootRun"))
}

tasks.register<Exec>("run-container") {
    group = "OpenCoDE"
    description = "Runs the dataprovider against the database in foreground."
    commandLine("docker", "compose", "up")
}

tasks.register("clean") {
    group = "OpenCoDE"
    description = "Removes all builds."
    dependsOn(gradle.includedBuild("app").task(":backend:clean"))
}

tasks.register("build") {
    group = "OpenCoDE"
    description = "Build the service"
    dependsOn(gradle.includedBuild("app").task(":backend:build"))
}

tasks.register("test") {
    group = "OpenCoDE"
    description = "Runs tests."
    dependsOn(gradle.includedBuild("app").task(":backend:test"))
}

tasks.register("assemble") {
    group = "OpenCoDE"
    description = "Assembles everything into a deployable format."
    dependsOn(gradle.includedBuild("app").task(":backend:assemble"))
}