/*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java library project to get you started.
 * For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle
 * User Manual available at https://docs.gradle.org/7.4.2/userguide/building_java_projects.html
 */

plugins {
    id 'com.github.johnrengelman.shadow' version '7.0.0'
    id 'java-library'
    id 'io.freefair.lombok' version '6.2.0'
}

java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(17))
    }
}

repositories {
    // Use Maven Central for resolving dependencies.
    mavenCentral()
}

dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.22'
    annotationProcessor 'org.projectlombok:lombok:1.18.22'

    // Add your library dependencies here.
    implementation 'com.google.code.gson:gson:2.8.9' 
    implementation 'com.squareup.okhttp3:okhttp:4.9.3'
    implementation 'net.portswigger.burp.extensions:montoya-api:2023.3'
    implementation 'org.apache.commons:commons-text:1.9'

    // Use JUnit Jupiter for testing.
    testImplementation 'net.portswigger.burp.extensions:montoya-api:2023.3'
    testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1'
    testImplementation 'org.mockito:mockito-core:3.12.4'

    // This dependency is exported to consumers, that is to say found on their compile classpath.
    api 'org.apache.commons:commons-math3:3.6.1'

    // This dependency is used internally, and not exposed to consumers on their own compile classpath.
    implementation 'com.google.guava:guava:30.1.1-jre'
}

test {
    // Use JUnit Platform for unit tests.
    useJUnitPlatform()
}

shadowJar {
    archiveBaseName.set(rootProject.name)
    archiveVersion.set(getVersion())
    manifest {
        attributes 'Main-Class': 'burp.MyBurpExtension'
    }
}

def getVersion() {
    def cmd = 'git describe --tags --always --dirty=-SNAPSHOT'.execute()
    cmd.waitFor()
    return cmd.text.trim()
}
