Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/kscript
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,8 @@ if [[ $(uname) == CYGWIN* ]]; then jarPath=$(cygpath -w ${jarPath}); fi
## prefer KOTLIN_HOME instead of PATH to resolve `kotlin` location (see #145)
if [[ -z "$KOTLIN_HOME" ]]; then KOTLIN_EXEC="kotlin"; else KOTLIN_EXEC="$KOTLIN_HOME/bin/kotlin"; fi

## expose the name of the script being run to the script itself
export KSCRIPT_FILE="$1"

## run it using command substitution to have just the user process once kscript is done
eval "exec $(${KOTLIN_EXEC} -classpath ${jarPath} kscript.app.KscriptKt "$@")"
2 changes: 2 additions & 0 deletions test/resources/uses_self_file_name.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/usr/bin/env kscript
println("Usage: ${System.getenv("KSCRIPT_FILE")} [-ae] [--foo] file+")
4 changes: 4 additions & 0 deletions test/test_suite.sh
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,10 @@ assert "unset KOTLIN_HOME; echo 'println(99)' | kscript -" "99"

## todo test what happens if kotlin/kotlinc/java/maven is not in PATH

## run script that tries to find out its own filename via environment variable
f="${KSCRIPT_HOME}/test/resources/uses_self_file_name.kts"
assert "$f" "Usage: $f [-ae] [--foo] file+"


assert_end environment_tests

Expand Down