Kotlin-scaffold/index.js

53 lines
1.3 KiB
JavaScript

echo("Kotlin template")
const files = [
"app/resources/logback.xml",
".gitignore",
".gitattributes",
"buildSrc/build.gradle.kts",
"buildSrc/src/main/kotlin/kotlin-application.gradle.kts",
"buildSrc/src/main/kotlin/kotlin-library.gradle.kts",
"gradle/wrapper/gradle-wrapper.jar",
"gradle/wrapper/gradle-wrapper.properties",
"gradlew",
"gradlew.bat",
]
for (let file of files) {
copy(file, file)
}
const projectName = prompt("Project name")
const javaVersion = prompt("Java version", "15")
const basePackage = prompt("Base package")
const mainClassName = prompt("Main class", projectName)
const mainClassNameWithPackage = `${basePackage}.${mainClassName}`
const ctx = {
project: {
name: projectName,
basePackage: basePackage,
mainClassName: mainClassName,
mainClass: mainClassNameWithPackage
},
java: {
version: javaVersion
}
}
const templates = [
"app/build.gradle.kts",
"settings.gradle.kts",
"README.md",
"buildSrc/src/main/kotlin/java-convention.gradle.kts",
"buildSrc/src/main/kotlin/kotlin-convention.gradle.kts",
]
for (let template of templates) {
write(render(template, ctx), template)
}
const mainClassFile = "app/src/" + mainClassName + ".kt"
write(render("app/src/App.kt", ctx), mainClassFile)