Skip to content

Commit

Permalink
Bump Graal version. Add version label
Browse files Browse the repository at this point in the history
  • Loading branch information
nishtahir committed Jul 21, 2022
1 parent 4ef6d4d commit 4f0f145
Show file tree
Hide file tree
Showing 6 changed files with 73 additions and 17 deletions.
9 changes: 9 additions & 0 deletions .graal/resource-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"resources" : {
"includes" : [ {
"pattern": ".*\\.properties"
} ],
"excludes" : [ ]
},
"bundles" : [ ]
}
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ $ icicle --help
Usage: icicle [OPTIONS] COMMAND [ARGS]...
Options:
--version Show the version and exit
-h, --help Show this message and exit
Commands:
Expand Down Expand Up @@ -46,8 +47,8 @@ documentation for more information.
To build the native image for your platform.

```shell
$ ./gradlew nativeBuild
$ ./gradlew nativeCompile
```

This will output the compiled native binary to `./build/native/nativeBuild/icicle`
This will output the compiled native binary to `./build/native/nativeCompile/icicle`

56 changes: 44 additions & 12 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,13 +1,25 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import java.util.Properties
import java.io.FileOutputStream

plugins {
kotlin("jvm") version "1.7.10"
kotlin("plugin.serialization") version "1.7.10"
id("org.graalvm.buildtools.native") version "0.9.4"
id("org.graalvm.buildtools.native") version "0.9.13"
}

group = "com.nishtahir"
version = "1.0-SNAPSHOT"
group = "com.nishtahir.icicle"
version = "0.0.1"

val generatedPropertiesDir = "$buildDir/properties"
sourceSets {
main {
resources {
srcDirs.add(file(generatedPropertiesDir))
output.dir(generatedPropertiesDir)
}
}
}

repositories {
mavenCentral()
Expand All @@ -20,14 +32,19 @@ dependencies {
testImplementation(kotlin("test"))
}

nativeBuild {
imageName.set("icicle")
mainClass.set("com.nishtahir.icicle.MainKt")
buildArgs.add("--enable-url-protocols=https")
javaLauncher.set(javaToolchains.launcherFor {
languageVersion.set(JavaLanguageVersion.of(11))
vendor.set(JvmVendorSpec.matching("GraalVM Community"))
})
graalvmNative {
binaries {
named("main") {
imageName.set("icicle")
mainClass.set("com.nishtahir.icicle.MainKt")
buildArgs.add("--enable-url-protocols=https")
javaLauncher.set(javaToolchains.launcherFor {
languageVersion.set(JavaLanguageVersion.of(11))
vendor.set(JvmVendorSpec.matching("GraalVM Community"))
})
configurationFileDirectories.from(file("./.graal"))
}
}
}

tasks.test {
Expand All @@ -36,4 +53,19 @@ tasks.test {

tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "11"
}
}

tasks.register("generateVersionProperties") {
doLast {
val propertiesFile = file("$generatedPropertiesDir/version.properties")
propertiesFile.parentFile.mkdirs()
val properties = Properties()
properties.setProperty("version", "$version")
val out = FileOutputStream(propertiesFile)
properties.store(out, null)
}
}

tasks.named("processResources") {
dependsOn("generateVersionProperties")
}
7 changes: 5 additions & 2 deletions src/main/kotlin/com/nishtahir/icicle/Cli.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ package com.nishtahir.icicle
import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.arguments.argument
import com.github.ajalt.clikt.parameters.arguments.optional
import com.github.ajalt.clikt.parameters.options.default
import com.github.ajalt.clikt.parameters.options.flag
import com.github.ajalt.clikt.parameters.options.option
import com.github.ajalt.clikt.parameters.options.versionOption
import com.github.kittinunf.fuel.Fuel
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream
import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream
Expand All @@ -14,9 +18,8 @@ import java.nio.file.Path
import kotlin.math.roundToInt
import kotlin.system.exitProcess

class Cli : CliktCommand(name = "icicle", printHelpOnEmptyArgs = true) {
class Cli() : CliktCommand(name = "icicle", printHelpOnEmptyArgs = true) {
override fun run() {

}
}

Expand Down
11 changes: 10 additions & 1 deletion src/main/kotlin/com/nishtahir/icicle/Environment.kt
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package com.nishtahir.icicle

import java.io.File
import java.util.*
import kotlin.io.path.Path

data class Environment(
val icicleHome: String,
val shellPath: String?,
val os: String,
val arch: String,
val version: String,
) {
val toolchainHome = "$icicleHome/toolchains"
val aliasesHome = "$icicleHome/aliases"
Expand Down Expand Up @@ -40,10 +42,17 @@ data class Environment(
icicleHome = icicleHome,
shellPath = shellPath,
os = System.getProperty("os.name"),
arch = System.getProperty("os.arch")
arch = System.getProperty("os.arch"),
version = applicationVersion()
)
}

private fun applicationVersion(): String {
val properties = Properties()
properties.load(Environment::class.java.getResourceAsStream("/version.properties"))
return properties.getProperty("version")
}

private fun String.removeTrailingSlash(): String {
if (this.endsWith("/")) {
return this.substring(0, this.length - 1)
Expand Down
2 changes: 2 additions & 0 deletions src/main/kotlin/com/nishtahir/icicle/Main.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.nishtahir.icicle

import com.github.ajalt.clikt.core.subcommands
import com.github.ajalt.clikt.parameters.options.versionOption

fun main(argv: Array<out String>) {
val environment = Environment.create()
Expand All @@ -14,5 +15,6 @@ fun main(argv: Array<out String>) {
.subcommands(ListCommand(environment))
.subcommands(UninstallCommand(environment))
.subcommands(UseCommand(environment))
.versionOption(environment.version)
.main(argv)
}

0 comments on commit 4f0f145

Please sign in to comment.