2021-04-03 22:40:56 +02:00

49 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",
]
files.forEach(f => copy(f))
const projectName = prompt.string("Project name")
const javaVersion = prompt.string("Java version", "15")
const basePackage = prompt.string("Base package")
const mainClassName = prompt.string("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",
]
templates.forEach(t => render(t, ctx))
const mainClassFile = "app/src/" + mainClassName + ".kt"
render("app/src/App.kt", ctx, mainClassFile)