Select Git revision
post-update.sample
-
Nurul Fithria Lubis authoredNurul Fithria Lubis authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
build.gradle 2.81 KiB
import java.nio.file.Paths
import java.util.concurrent.TimeUnit
plugins {
id("application")
id("java")
id("wrapper")
id("com.github.johnrengelman.shadow").version("5.2.0")
}
version = "1.0.1-SNAPSHOT"
final isSnapshot = project.version.endsWith("-SNAPSHOT")
final SOURCE_ENCODING = "UTF-8"
wrapper {
gradleVersion = "6.2.1"
distributionType = Wrapper.DistributionType.ALL
}
repositories {
jcenter()
if (isSnapshot) {
maven {
name("Sonatype snapshots")
url("https://oss.sonatype.org/content/repositories/snapshots")
}
}
}
configurations.all {
resolutionStrategy {
cacheChangingModulesFor(0, TimeUnit.SECONDS)
}
}
dependencies {
implementation(group: "com.google.code.gson", name: "gson", version: "2.8.6")
implementation(group: "com.google.guava", name: "guava", version: "28.2-jre")
implementation(group: "de.hhu.stups", name: "de.prob2.kernel", version: "3.10.0")
implementation(group: "io.github.spencerpark", name: "jupyter-jvm-basekernel", version: "2.3.0")
implementation(group: "org.jetbrains", name: "annotations", version: "18.0.0")
implementation(group: "se.sawano.java", name: "alphanumeric-comparator", version: "1.4.1")
}
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
tasks.withType(JavaCompile) {
options.encoding = SOURCE_ENCODING
}
def readCurrentGitCommit() {
def proc = ["git", "rev-parse", "HEAD"].execute(null, project.projectDir)
def exitCode = proc.waitFor()
if (exitCode != 0) {
throw new IllegalStateException("git rev-parse command exited with status code ${exitCode}:\n" + proc.err.readLines().join("\n"))
}
return proc.in.readLines()[0]
}
processResources {
filesMatching("de/prob2/jupyter/build.properties") {
expand(version: project.version, commit: readCurrentGitCommit())
}
}
mainClassName = "de.prob2.jupyter.Main"
final KERNEL_SPEC_OUTPUT_PATH = project.buildDir.toPath().resolve(Paths.get("kernelspec"))
task cleanKernelSpec(type: Delete) {
delete = [KERNEL_SPEC_OUTPUT_PATH.toFile()]
}
clean.dependsOn << cleanKernelSpec
task createKernelSpec(type: JavaExec) {
dependsOn = [shadowJar]
main = project.mainClassName
args = ["createKernelSpec", KERNEL_SPEC_OUTPUT_PATH.toString()]
classpath(shadowJar.archiveFile)
if (project.hasProperty("probHome")) {
systemProperty("prob.home", project.probHome)
}
outputs.dir(KERNEL_SPEC_OUTPUT_PATH.toFile())
doFirst {
delete(KERNEL_SPEC_OUTPUT_PATH)
mkdir(KERNEL_SPEC_OUTPUT_PATH)
}
}
task installKernelSpec(type: Exec) {
dependsOn = [createKernelSpec]
executable = project.hasProperty("jupyterCommand") ? project.jupyterCommand : "jupyter"
def installFlag
if (project.hasProperty("kernelspecUserInstall") && project.kernelspecUserInstall == "true") {
installFlag = "--user"
} else {
installFlag = "--sys-prefix"
}
args = ["kernelspec", "install", installFlag, "--name=prob2", KERNEL_SPEC_OUTPUT_PATH.toString()]
}