1
- def replTestDir = " ../compiler/test-resources/repl "
1
+ def replTestDir = " ../compiler/test-resources"
2
2
3
3
def list (dir : String = " ." ): Vector [String ] =
4
- Option (new java.io.File (dir).list).map(_.toVector).getOrElse(Vector ())
4
+ Option (java.io.File (dir).list).map(_.toVector).getOrElse(Vector ())
5
5
6
6
def loadLines (fileName : String , enc : String = " UTF-8" ): Vector [String ] =
7
7
var result = Vector .empty[String ]
@@ -10,30 +10,43 @@ def loadLines(fileName: String, enc: String = "UTF-8"): Vector[String] =
10
10
result
11
11
12
12
def saveString (text : String , fileName : String , enc : String = " UTF-8" ): Unit =
13
- val f = new java.io.File (fileName)
14
- val pw = new java.io.PrintWriter (f, enc)
13
+ val f = java.io.File (fileName)
14
+ val pw = java.io.PrintWriter (f, enc)
15
15
try pw.write(text) finally pw.close()
16
16
17
+ extension (s : String ) def isDir : Boolean = java.io.File (s).isDirectory
18
+
19
+
20
+ def visitFile (path : String , isModify : Boolean ): Unit =
21
+ print(s " \n processing: $path" )
22
+ val lines = loadLines(path)
23
+ var result = Vector [String ]()
24
+ for i <- lines.indices do
25
+ result :+= lines(i)
26
+ if lines(i).startsWith(" scala>" ) &&
27
+ lines.lift(i + 1 ).map(_.startsWith(" 1 | " )).getOrElse(false )
28
+ then
29
+ result :+= " -- Error:"
30
+
31
+ val msg =
32
+ if lines == result then Console .GREEN + " unmodified" + Console .RESET
33
+ else Console .RED + " *** MODIFIED" + Console .RESET
34
+ println(msg)
35
+ if lines != result then
36
+ println(" \n before ==========>\n " + lines.mkString(" \n " ))
37
+ println(" \n after ==========>\n " + result.mkString(" \n " ))
38
+ if isModify then
39
+ println(s " Writing: $path" )
40
+ saveString(result.mkString(" \n " ), path)
41
+
42
+ def visitDirRecursively (dirName : String , isModify : Boolean ): Unit =
43
+ println(s " Enter directory: $dirName" )
44
+ list(dirName).foreach( f =>
45
+ val path = s " $dirName/ $f"
46
+ if path.isDir then visitDirRecursively(path, isModify)
47
+ else visitFile(path, isModify)
48
+ )
17
49
18
50
@ main
19
- def run_insert_error (): Unit =
20
- for f <- list(replTestDir) do
21
- val fileName = s " $replTestDir/ $f"
22
- print(s " \n processing: $fileName" )
23
- val lines = loadLines(fileName)
24
- var result = Vector [String ]()
25
- for i <- lines.indices do
26
- result :+= lines(i)
27
- if lines(i).startsWith(" scala>" ) &&
28
- lines.lift(i + 1 ).map(_.startsWith(" 1 | " )).getOrElse(false )
29
- then
30
- result :+= " -- Error:"
31
-
32
- val msg =
33
- if lines == result then Console .GREEN + " unmodified" + Console .RESET
34
- else Console .RED + " *** MODIFIED" + Console .RESET
35
- println(msg)
36
- if lines != result then
37
- println(" \n before ==========>\n " + lines.mkString(" \n " ))
38
- println(" \n after ==========>\n " + result.mkString(" \n " ))
39
- saveString(result.mkString(" \n " ), fileName)
51
+ def run_insert_error (isModify : Boolean ): Unit =
52
+ visitDirRecursively(replTestDir, isModify)
0 commit comments