49 lines
1.3 KiB
JavaScript
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)
|