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)