diff --git a/jvm/basic/jvm-embeddable-host/build.gradle.kts b/jvm/basic/jvm-embeddable-host/build.gradle.kts index c475985..7061e49 100644 --- a/jvm/basic/jvm-embeddable-host/build.gradle.kts +++ b/jvm/basic/jvm-embeddable-host/build.gradle.kts @@ -11,6 +11,6 @@ dependencies { compileOnly("org.jetbrains.kotlin:kotlin-scripting-jvm-host:$kotlinVersion") testRuntimeOnly("org.jetbrains.kotlin:kotlin-scripting-jvm-host:$kotlinVersion") testRuntimeOnly("com.google.guava:guava:28.2-jre") - testImplementation("junit:junit:4.12") + testImplementation("junit:junit:4.13.1") } diff --git a/jvm/basic/jvm-maven-deps/host/build.gradle.kts b/jvm/basic/jvm-maven-deps/host/build.gradle.kts index f7cc3df..0192df1 100644 --- a/jvm/basic/jvm-maven-deps/host/build.gradle.kts +++ b/jvm/basic/jvm-maven-deps/host/build.gradle.kts @@ -10,7 +10,7 @@ dependencies { implementation("org.jetbrains.kotlin:kotlin-scripting-common:$kotlinVersion") implementation("org.jetbrains.kotlin:kotlin-scripting-jvm:$kotlinVersion") implementation("org.jetbrains.kotlin:kotlin-scripting-jvm-host:$kotlinVersion") - testImplementation("junit:junit:4.12") + testImplementation("junit:junit:4.13.1") testRuntimeOnly("org.slf4j:slf4j-nop:1.7.28") } diff --git a/jvm/basic/jvm-simple-script/host/build.gradle.kts b/jvm/basic/jvm-simple-script/host/build.gradle.kts index 48ecf52..43daa1e 100644 --- a/jvm/basic/jvm-simple-script/host/build.gradle.kts +++ b/jvm/basic/jvm-simple-script/host/build.gradle.kts @@ -11,6 +11,6 @@ dependencies { implementation("org.jetbrains.kotlin:kotlin-scripting-jvm:$kotlinVersion") implementation("org.jetbrains.kotlin:kotlin-scripting-jvm-host:$kotlinVersion") implementation("org.jetbrains.kotlin:kotlin-main-kts:$kotlinVersion") - testImplementation("junit:junit:4.12") + testImplementation("junit:junit:4.13.1") } diff --git a/jvm/jsr223/jsr223-main-kts/build.gradle.kts b/jvm/jsr223/jsr223-main-kts/build.gradle.kts index 46e5b03..f474f0c 100644 --- a/jvm/jsr223/jsr223-main-kts/build.gradle.kts +++ b/jvm/jsr223/jsr223-main-kts/build.gradle.kts @@ -10,5 +10,5 @@ dependencies { runtimeOnly("org.jetbrains.kotlin:kotlin-scripting-jsr223:$kotlinVersion") testRuntimeOnly("org.jetbrains.kotlin:kotlin-main-kts:$kotlinVersion") testRuntimeOnly("org.jetbrains.kotlin:kotlin-scripting-jsr223:$kotlinVersion") - testImplementation("junit:junit:4.12") + testImplementation("junit:junit:4.13.1") } diff --git a/jvm/jsr223/jsr223-simple/build.gradle.kts b/jvm/jsr223/jsr223-simple/build.gradle.kts index d404886..39cca39 100644 --- a/jvm/jsr223/jsr223-simple/build.gradle.kts +++ b/jvm/jsr223/jsr223-simple/build.gradle.kts @@ -8,5 +8,5 @@ val kotlinVersion: String by rootProject.extra dependencies { runtimeOnly("org.jetbrains.kotlin:kotlin-scripting-jsr223:$kotlinVersion") testRuntimeOnly("org.jetbrains.kotlin:kotlin-scripting-jsr223:$kotlinVersion") - testImplementation("junit:junit:4.12") + testImplementation("junit:junit:4.13.1") } diff --git a/jvm/main-kts/MainKts.md b/jvm/main-kts/MainKts.md index a48145a..6e78414 100644 --- a/jvm/main-kts/MainKts.md +++ b/jvm/main-kts/MainKts.md @@ -40,7 +40,11 @@ or even as simple as ./script.main.kts ``` -provided that the shebang line is added to the script and works in the given OS shell. *(See examples below.)* +provided that the shebang line is added to the script and works in the given OS shell + +``` +#!/usr/bin/env kotlin +``` ### Caching @@ -60,4 +64,12 @@ including navigation into imported libraries. [`kotlinx-html` library](https://github.com/Kotlin/kotlinx.html) by JetBrains, to generate HTML output - [`kotlin-shell.main.kts`](scripts/kotlin-shell.main.kts) demonstrates usage of the [`kotlin-shell` library](https://github.com/jakubriegel/kotlin-shell) by Jakub Riegel, to execute OS shell commands -with easy interaction with Kotlin code +with easy interaction with Kotlin code and can be executed: + + - without arguments - executes "ls -l" command for curren directory + - with argument - executes "wc" command for a file + + ``` + kotlin kotlin-shell.main.kts main-kts/example.txt + ``` + diff --git a/jvm/main-kts/example.txt b/jvm/main-kts/example.txt new file mode 100644 index 0000000..2a4f67b --- /dev/null +++ b/jvm/main-kts/example.txt @@ -0,0 +1,5 @@ +Two roads diverged in a yellow wood, +And sorry I could not travel both +And be one traveler, long I stood +And looked down one as far as I could +To where it bent in the undergrowth. diff --git a/jvm/main-kts/scripts/kotlin-shell.main.kts b/jvm/main-kts/scripts/kotlin-shell.main.kts index 2380b10..c840452 100755 --- a/jvm/main-kts/scripts/kotlin-shell.main.kts +++ b/jvm/main-kts/scripts/kotlin-shell.main.kts @@ -1,21 +1,23 @@ #!/usr/bin/env kotlin @file:DependsOn("eu.jrie.jetbrains:kotlin-shell-core:0.2.1") -@file:DependsOn("org.slf4j:slf4j-simple:1.7.28") @file:CompilerOptions("-Xopt-in=kotlin.RequiresOptIn") @file:OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class) +@file:Suppress("OPT_IN_ARGUMENT_IS_NOT_MARKER") -import eu.jrie.jetbrains.kotlinshell.shell.* + +import eu.jrie.jetbrains.kotlinshell.shell.shell shell { if (args.isEmpty()) { + "echo this is 'ls -l' command for current directory: ${env("PWD")}"() "ls -l"() } else { var lines = 0 var words = 0 var chars = 0 - var wasSpace = false + var wasSpace = true pipeline { "cat ${args[0]}".process() pipe @@ -38,7 +40,7 @@ shell { } println("My wc:") - println("$lines $words $chars") + println(" $lines $words $chars ${args[0]}") println("System wc:") "wc ${args[0]}"() } diff --git a/jvm/main-kts/scripts/kotlinx-html.main.kts b/jvm/main-kts/scripts/kotlinx-html.main.kts index 407a134..a9e8efb 100755 --- a/jvm/main-kts/scripts/kotlinx-html.main.kts +++ b/jvm/main-kts/scripts/kotlinx-html.main.kts @@ -2,7 +2,8 @@ @file:DependsOn("org.jetbrains.kotlinx:kotlinx-html-jvm:0.8.0") -import kotlinx.html.*; import kotlinx.html.stream.*; import kotlinx.html.attributes.* +import kotlinx.html.* +import kotlinx.html.stream.createHTML val addressee = args.firstOrNull() ?: "World" diff --git a/jvm/simple-main-kts/simple-main-kts-test/testData/kotlinx-html.smain.kts b/jvm/simple-main-kts/simple-main-kts-test/testData/kotlinx-html.smain.kts index ee607ad..c7263bd 100755 --- a/jvm/simple-main-kts/simple-main-kts-test/testData/kotlinx-html.smain.kts +++ b/jvm/simple-main-kts/simple-main-kts-test/testData/kotlinx-html.smain.kts @@ -1,7 +1,7 @@ #!/usr/bin/env kotlinc -cp dist/kotlinc/lib/kotlin-main-kts.jar -script @file:Repository("https://jcenter.bintray.com") -@file:DependsOn("org.jetbrains.kotlinx:kotlinx-html-jvm:0.6.11") +@file:DependsOn("org.jetbrains.kotlinx:kotlinx-html-jvm:0.8.0") import kotlinx.html.*; import kotlinx.html.stream.*; import kotlinx.html.attributes.* diff --git a/jvm/simple-main-kts/simple-main-kts/build.gradle.kts b/jvm/simple-main-kts/simple-main-kts/build.gradle.kts index 3783661..6f031cb 100644 --- a/jvm/simple-main-kts/simple-main-kts/build.gradle.kts +++ b/jvm/simple-main-kts/simple-main-kts/build.gradle.kts @@ -12,7 +12,7 @@ dependencies { implementation("org.jetbrains.kotlin:kotlin-scripting-jvm-host:$kotlinVersion") implementation("org.jetbrains.kotlin:kotlin-scripting-dependencies:$kotlinVersion") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutinesVersion") - implementation("org.apache.ivy:ivy:2.5.0") + implementation("org.apache.ivy:ivy:2.5.2") } sourceSets {