public
Last active

tiny little scala script to check for play documentation translated files, see http://www.dzone.com/links/first_steps_with_scala_say_goodbye_to_bash_scripts.html

  • Download Gist
status.scala
Scala
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
#!/bin/sh
exec scala -savecompiled "$0" "$@"
!#
 
import java.io._
 
val docs = new File(".").listFiles
.filter(_.getName.endsWith(".textile")) // process only textile files
.map(new DocumentationFile(_))
 
val translated = docs.filter(_.isTranslated) // only already translated files
 
//Other ways to do it
//val translatedLength = translated.foldLeft(0L)( (acum, element) => acum + element.length )
//val translatedLength = translated.foldLeft(0L)( _ + _.length )
//val translatedLength = if (translated.length == 0) 0 else translated.map(_.length).sum
 
val translatedLength = translated.map(_.length).sum
 
val docsLength = docs.map(_.length).sum
 
println(
status("translated size", translatedLength, docsLength, (length) => asKB(length) )
)
 
println(
status("translated files", translated.length, docs.length)
)
 
def status(title: String = "status", current: Long, total: Long, format: (Long) => String = (x) => x.toString): String = {
 
val percent = current * 100 / total
 
title + ": " + format(current) + "/" + format(total) + " " +
percent + "%" +
" (pending " + format(total - current) + " " +
(100-percent) + "%)"
}
 
def asKB(length: Long) = (length / 1000) + "kb"
 
class DocumentationFile(val file: File) {
 
val name = file.getName
val length = file.length
val isTranslated = (firstLine.indexOf("Esta página todavía no ha sido traducida al castellano") == -1)
 
override def toString = "name: " + name + ", length: " + length + ", isTranslated: " + isTranslated
 
def firstLine = new BufferedReader(new FileReader(file)).readLine
 
}

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.