From 75a53984047dc0f8145a0676baa6a2ec15fa9d7d Mon Sep 17 00:00:00 2001 From: TzeKei Lee Date: Thu, 15 Dec 2016 02:25:47 +0800 Subject: [PATCH] Allow running whatDependsOn without version --- .../sbt/graph/DependencyGraphSettings.scala | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/scala/net/virtualvoid/sbt/graph/DependencyGraphSettings.scala b/src/main/scala/net/virtualvoid/sbt/graph/DependencyGraphSettings.scala index ab0fd6779..d423548c4 100644 --- a/src/main/scala/net/virtualvoid/sbt/graph/DependencyGraphSettings.scala +++ b/src/main/scala/net/virtualvoid/sbt/graph/DependencyGraphSettings.scala @@ -98,7 +98,10 @@ object DependencyGraphSettings { }, whatDependsOn <<= InputTask(artifactIdParser) { module ⇒ (module, streams, moduleGraph) map { (module, streams, graph) ⇒ - streams.log.info(rendering.AsciiTree.asciiTree(GraphTransformations.reverseGraphStartingAt(graph, module))) + if (module.version.isEmpty) { + val modules = graph.reverseDependencyMap.filter(m ⇒ m._1.copy(version = "") == module).keys + modules.foreach(m ⇒ streams.log.info(rendering.AsciiTree.asciiTree(GraphTransformations.reverseGraphStartingAt(graph, m)))) + } else streams.log.info(rendering.AsciiTree.asciiTree(GraphTransformations.reverseGraphStartingAt(graph, module))) } }, licenseInfo <<= (moduleGraph, streams) map showLicenseInfo)) @@ -188,11 +191,14 @@ object DependencyGraphSettings { import sbt.complete.DefaultParsers._ graph.nodes.map(_.id).map { case id @ ModuleId(org, name, version) ⇒ - (Space ~ token(org) ~ token(Space ~ name) ~ token(Space ~ version)).map(_ ⇒ id) + (Space ~ token(org) ~ token(Space ~ name) ~ token(Space ~ version).?).map(_._2 match { + case Some(_) ⇒ id + case None ⇒ id.copy(version = "") + }) }.reduceOption(_ | _).getOrElse { - (Space ~> token(StringBasic, "organization") ~ Space ~ token(StringBasic, "module") ~ Space ~ token(StringBasic, "version")).map { - case ((((org, _), mod), _), version) ⇒ - ModuleId(org, mod, version) + (Space ~> token(StringBasic, "organization") ~ Space ~ token(StringBasic, "module") ~ (Space ~ token(StringBasic, "version")).?).map { + case (((org, _), mod), version) ⇒ + ModuleId(org, mod, version.map(_._2).getOrElse("")) } } }