Skip to content

Commit 8829a91

Browse files
committed
add test sources
1 parent 61303b3 commit 8829a91

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
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+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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+
}

0 commit comments

Comments
 (0)