Compare commits

..

No commits in common. "a4add8adbc8eeb7d4460cbe3d6f5a7fb2f71928f" and "e12cb1cac765abce235cef036ab10fc853502303" have entirely different histories.

10 changed files with 26 additions and 59 deletions

View File

@ -8,14 +8,15 @@ plugins {
version = "0.0.1-SNAPSHOT" version = "0.0.1-SNAPSHOT"
dependencies { dependencies {
implementation("org.slf4j:slf4j-api:2.0.7") implementation("org.slf4j:slf4j-api:2.0.0-alpha1")
runtimeOnly("org.slf4j:slf4j-simple:2.0.7") runtimeOnly("org.slf4j:slf4j-simple:2.0.0-alpha1")
implementation("io.pebbletemplates:pebble:3.2.1") implementation("io.pebbletemplates:pebble:3.1.5")
implementation("com.github.ajalt.clikt:clikt:3.5.2") implementation("com.github.ajalt.clikt:clikt:3.1.0")
implementation("org.graalvm.js:js:22.3.2") implementation("org.graalvm.js:js:21.0.0.2")
} }
application { application {
mainClassName = "scaffold.ScaffoldKt"
mainClass.set("scaffold.ScaffoldKt") mainClass.set("scaffold.ScaffoldKt")
applicationName = "scaffold" applicationName = "scaffold"
} }

View File

@ -5,7 +5,6 @@ import com.github.ajalt.clikt.output.CliktConsole
import com.github.ajalt.clikt.output.TermUi import com.github.ajalt.clikt.output.TermUi
import com.github.ajalt.clikt.output.defaultCliktConsole import com.github.ajalt.clikt.output.defaultCliktConsole
@Suppress("DEPRECATION") // TODO: later..
class Prompt(private val console: CliktConsole = defaultCliktConsole()) { class Prompt(private val console: CliktConsole = defaultCliktConsole()) {
fun string(text: String, default: String?): String = TermUi.prompt( fun string(text: String, default: String?): String = TermUi.prompt(
@ -27,7 +26,7 @@ class Prompt(private val console: CliktConsole = defaultCliktConsole()) {
showDefault = false, showDefault = false,
console = console console = console
) { ) {
when (it.lowercase()) { when (it.toLowerCase()) {
"y" -> true "y" -> true
"n" -> false "n" -> false
else -> throw UsageError("Can only be [y/n]") else -> throw UsageError("Can only be [y/n]")

View File

@ -2,13 +2,14 @@ package scaffold.commands
import com.github.ajalt.clikt.core.CliktCommand import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.core.ProgramResult import com.github.ajalt.clikt.core.ProgramResult
import com.github.ajalt.clikt.core.UsageError
import com.github.ajalt.clikt.parameters.arguments.argument import com.github.ajalt.clikt.parameters.arguments.argument
import com.github.ajalt.clikt.parameters.options.convert import com.github.ajalt.clikt.parameters.options.convert
import com.github.ajalt.clikt.parameters.options.option import com.github.ajalt.clikt.parameters.options.option
import com.github.ajalt.clikt.parameters.options.required import com.github.ajalt.clikt.parameters.options.required
import io.pebbletemplates.pebble.PebbleEngine import com.mitchellbosecke.pebble.PebbleEngine
import io.pebbletemplates.pebble.loader.FileLoader import com.mitchellbosecke.pebble.loader.FileLoader
import io.pebbletemplates.pebble.template.PebbleTemplate import com.mitchellbosecke.pebble.template.PebbleTemplate
import scaffold.Generator import scaffold.Generator
import scaffold.Generators import scaffold.Generators
import scaffold.Prompt import scaffold.Prompt

View File

@ -2,12 +2,16 @@ plugins {
`kotlin-dsl` `kotlin-dsl`
} }
kotlinDslPluginOptions {
experimentalWarning.set(false)
}
repositories { repositories {
gradlePluginPortal() gradlePluginPortal()
} }
dependencies { dependencies {
implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.21")) implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.4.31"))
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.21") implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31")
implementation("com.github.johnrengelman:shadow:8.1.1") implementation("com.github.jengelman.gradle.plugins:shadow:6.1.0")
} }

View File

@ -7,9 +7,8 @@ repositories {
} }
java { java {
toolchain { targetCompatibility = JavaVersion.toVersion(11)
languageVersion.set(JavaLanguageVersion.of(19)) sourceCompatibility = JavaVersion.toVersion(11)
}
} }
tasks.withType<JavaCompile> { tasks.withType<JavaCompile> {

View File

@ -1,5 +1,3 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins { plugins {
@ -20,10 +18,9 @@ tasks.withType<Test> {
} }
tasks.withType<KotlinCompile> { tasks.withType<KotlinCompile> {
compilerOptions { kotlinOptions {
jvmTarget.set(JvmTarget.JVM_19) jvmTarget = "11"
javaParameters.set(true) javaParameters = true
languageVersion.set(KotlinVersion.KOTLIN_2_0)
} }
} }

View File

@ -1,43 +1,10 @@
import org.gradle.jvm.toolchain.JavaToolchainService;
import java.io.ByteArrayOutputStream
task("buildNative") { task("buildNative") {
dependsOn("installShadowDist") dependsOn("installShadowDist")
outputs.file("${buildDir}/native/scaffold") outputs.file("${buildDir}/native/scaffold")
doLast { doLast {
val graalvmHome = project.extensions.findByType<JavaToolchainService>()?.launcherFor { val graalvmHome = System.getenv("GRAALVM_HOME") ?: error("GRAALVM_HOME is not set")
languageVersion.set(JavaLanguageVersion.of(19))
vendor.set(JvmVendorSpec.GRAAL_VM)
}
?.orNull
?.executablePath?.asFile?.toPath()?.parent?.parent?.toString()
?: System.getenv("GRAALVM_HOME")
?: error("GRAALVM_HOME is not set")
val out = ByteArrayOutputStream()
exec {
commandLine(
"${graalvmHome}/bin/gu",
"list",
"-v",
)
standardOutput = out
}
val installedComponents = out.toString().lines()
.filter { it.startsWith("ID") }
.map { it.substringAfter(':').trim() }
if ("native-image" !in installedComponents) {
throw GradleException("GRAALVM: Missing js component")
}
if ("js" !in installedComponents) {
throw GradleException("GRAALVM: Missing js component")
}
exec { exec {
commandLine( commandLine(

View File

@ -1,3 +1,3 @@
org.gradle.jvmargs=-Xmx2048M -Dfile.encoding=UTF-8 org.gradle.jvmargs=-Xmx2048M -XX:MaxPermSize=512m -Dfile.encoding=UTF-8
org.gradle.caching=true org.gradle.caching=true
org.gradle.parallel=true org.gradle.parallel=true

Binary file not shown.

View File

@ -1,6 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists