Add version to nodes.

This commit is contained in:
Gerolf Seitz 2011-12-01 23:57:05 +01:00 committed by Gerolf Seitz
parent 5bce725bdf
commit 70462d7a62
1 changed files with 11 additions and 11 deletions

View File

@ -21,18 +21,18 @@ import java.io.File
import xml.{XML, Node}
object IvyGraphMLDependencies extends App {
case class Module(organisation: String, name: String) {
def id: String = organisation+"."+name
case class Module(organisation: String, name: String, version: String) {
def id: String = organisation+"."+name+"-"+version
}
def transform(ivyReportFile: String, outputFile: String) {
val doc = ConstructingParser.fromSource(io.Source.fromFile(ivyReportFile), false).document
val edges =
for (mod <- doc \ "dependencies" \ "module";
depModule = nodeFromElement(mod);
caller <- mod \ "revision" \ "caller";
callerModule = nodeFromElement(caller))
yield (callerModule, depModule)
val edges = for {
mod <- doc \ "dependencies" \ "module"
caller <- mod \ "revision" \ "caller"
callerModule = nodeFromElement(caller, caller.attribute("callerrev").get.text)
depModule = nodeFromElement(mod, caller.attribute("rev").get.text)
} yield (callerModule, depModule)
val nodes = edges.flatMap(e => Seq(e._1, e._2)).distinct
@ -63,8 +63,8 @@ object IvyGraphMLDependencies extends App {
XML.save(outputFile, xml)
}
def nodeFromElement(element: Node): Module =
Module(element.attribute("organisation").get.text, element.attribute("name").get.text)
def nodeFromElement(element: Node, version: String): Module =
Module(element.attribute("organisation").get.text, element.attribute("name").get.text, version)
def die(msg: String): Nothing = {
println(msg)
@ -76,4 +76,4 @@ object IvyGraphMLDependencies extends App {
val file = args.lift(0).filter(f => new File(f).exists).getOrElse(die(usage))
val inputFile = args.lift(1).getOrElse(die(usage))
transform(file, inputFile)
}
}