|
Scala example source code file (SVN.scala)
The Scala SVN.scala source code
import sbt._
/**
* @param root the root of an svn repository
* @author Moix Grégory
*/
class SVN(root: Path) {
/** Location of tool which parses svn revision in git-svn repository. */
val GitSvnRevTool = root / "tools" / "get-scala-revision"
val GitSvnRegex = """^Revision:\s*(\d+).*""".r
/**
* Gets the revision number of the repository given through the constructor of the class
* It assumes that svn or git is installed on the running computer. Return 0 if it was not
* able to found the revision number
*/
def getRevisionNumber: Int = getSvn orElse getGit getOrElse 0
def getSvn: Option[Int] = {
/** Doing this the hard way trying to suppress the svn error message
* on stderr. Could not figure out how to do it simply in sbt.
*/
val pb = new java.lang.ProcessBuilder("svn", "info")
pb directory root.asFile
pb redirectErrorStream true
Process(pb).lines_! foreach {
case GitSvnRegex(rev) => return Some(rev.toInt)
case _ => ()
}
None
}
def getGit: Option[Int] =
try { Some(Process(GitSvnRevTool.toString, root).!!.trim.toInt) }
catch { case _: Exception => None }
}
Other Scala examples (source code examples)Here is a short list of links related to this Scala SVN.scala source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.