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)