File tree Expand file tree Collapse file tree 2 files changed +42
-0
lines changed
compiler/test-resources/scripting Expand file tree Collapse file tree 2 files changed +42
-0
lines changed Original file line number Diff line number Diff line change
1
+ #!/usr/bin/env scala
2
+ export STUFF =nada
3
+ !#
4
+
5
+ def main (args : Array [String ]): Unit =
6
+ System .err.printf(" mainClassFromStack: %s\n " ,mainFromStack)
7
+ // assert(mainFromStack.contains("HashBang"),s"fromStack[$mainFromStack]")
8
+
9
+ lazy val mainFromStack : String = {
10
+ val result = new java.io.StringWriter ()
11
+ new RuntimeException (" stack" ).printStackTrace(new java.io.PrintWriter (result))
12
+ val stack = result.toString.split(" [\r\n ]+" ).toList
13
+ for ( s <- stack ){
14
+ System .err.printf(" [%s]\n " ,s)
15
+ }
16
+ stack.filter { str => str.contains(" .main(" ) }.map {
17
+ _.replaceAll(" .*[(]" ," " ).
18
+ replaceAll(" [:)].*" ," " )
19
+ }.distinct.take(1 ).mkString(" " )
20
+ }
Original file line number Diff line number Diff line change
1
+ #!/usr/bin/env scala
2
+ export STUFF =nada
3
+ lots of other stuff that isn' t valid scala
4
+ !#
5
+ object Zoo {
6
+ def main (args : Array [String ]): Unit =
7
+ printf(" script.name: %s\n " ,sys.props(" script.name" ))
8
+ printf(" mainClassFromStack: %s\n " ,mainFromStack)
9
+ assert(mainFromStack == " Zoo" ,s " fromStack[ $mainFromStack] " )
10
+
11
+ lazy val mainFromStack : String = {
12
+ val result = new java.io.StringWriter ()
13
+ new RuntimeException (" stack" ).printStackTrace(new java.io.PrintWriter (result))
14
+ val stack = result.toString.split(" [\r\n ]+" ).toList
15
+ // for( s <- stack ){ System.err.printf("[%s]\n",s) }
16
+ val shortStack = stack.filter { str => str.contains(" .main(" ) && ! str.contains(" $" ) }.map {
17
+ _.replaceAll(" [.].*" ," " ).replaceAll(" \\ s+at\\ s+" ," " )
18
+ }
19
+ // for( s <- shortStack ){ System.err.printf("[%s]\n",s) }
20
+ shortStack.take(1 ).mkString(" |" )
21
+ }
22
+ }
You can’t perform that action at this time.
0 commit comments