Skip to content

Commit 3c9ff43

Browse files
committed
misc style tweaks
1 parent c21bc2e commit 3c9ff43

File tree

3 files changed

+90
-31
lines changed

3 files changed

+90
-31
lines changed

src/main/scala/net/virtualvoid/sbt/graph/DependencyGraphSettings.scala

Lines changed: 68 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,18 @@
1616

1717
package net.virtualvoid.sbt.graph
1818

19-
import scala.language.reflectiveCalls
20-
21-
import sbt._
22-
import Keys._
23-
import sbt.complete.Parser
19+
import net.virtualvoid.sbt.graph.GraphTransformations.reverseGraphStartingAt
2420
import net.virtualvoid.sbt.graph.backend.{ IvyReport, SbtUpdateReport }
2521
import net.virtualvoid.sbt.graph.rendering.{ AsciiGraph, AsciiTree, DagreHTML }
2622
import net.virtualvoid.sbt.graph.util.IOUtil
27-
import internal.librarymanagement._
28-
import librarymanagement._
23+
import sbt.Keys._
24+
import sbt._
25+
import sbt.complete.Parser
2926
import sbt.dependencygraph.DependencyGraphSbtCompat
3027
import sbt.dependencygraph.DependencyGraphSbtCompat.Implicits._
28+
import sbt.internal.librarymanagement._
29+
30+
import scala.language.reflectiveCalls
3131

3232
object DependencyGraphSettings {
3333
import DependencyGraphKeys._
@@ -48,7 +48,17 @@ object DependencyGraphSettings {
4848
ivyReport := { Def.task { ivyReportFunction.value.apply(config.toString) } dependsOn (ignoreMissingUpdate) }.value,
4949
crossProjectId := sbt.CrossVersion(scalaVersion.value, scalaBinaryVersion.value)(projectID.value),
5050
moduleGraphSbt :=
51-
ignoreMissingUpdate.value.configuration(configuration.value).map(report SbtUpdateReport.fromConfigurationReport(report, crossProjectId.value)).getOrElse(ModuleGraph.empty),
51+
ignoreMissingUpdate
52+
.value
53+
.configuration(configuration.value)
54+
.map(
55+
report
56+
SbtUpdateReport.fromConfigurationReport(
57+
report,
58+
crossProjectId.value
59+
)
60+
)
61+
.getOrElse(ModuleGraph.empty),
5262
moduleGraphIvyReport := IvyReport.fromReportFile(absoluteReportPath(ivyReport.value)),
5363
moduleGraph := {
5464
sbtVersion.value match {
@@ -92,8 +102,17 @@ object DependencyGraphSettings {
92102
"""%s<BR/><B>%s</B><BR/>%s""".format(organisation, name, version)
93103
},
94104
whatDependsOn := {
95-
val module = artifactIdParser.parsed
96-
streams.value.log.info(AsciiTree(GraphTransformations.reverseGraphStartingAt(moduleGraph.value, module)))
105+
streams
106+
.value
107+
.log
108+
.info(
109+
AsciiTree(
110+
reverseGraphStartingAt(
111+
moduleGraph.value,
112+
artifactIdParser.parsed
113+
)
114+
)
115+
)
97116
},
98117
licenseInfo := showLicenseInfo(moduleGraph.value, streams.value)) ++ AsciiGraph.asciiGraphSetttings)
99118

@@ -105,7 +124,7 @@ object DependencyGraphSettings {
105124
(config: String) {
106125
val org = projectID.organization
107126
val name = crossName(ivyModule)
108-
file(s"${crossTarget}/resolution-cache/reports/$org-$name-$config.xml")
127+
file(s"$crossTarget/resolution-cache/reports/$org-$name-$config.xml")
109128
}
110129
}
111130

@@ -151,29 +170,57 @@ object DependencyGraphSettings {
151170
}.mkString("\n\n")
152171
streams.log.info(output)
153172
}
154-
155-
import Project._
156173
val shouldForceParser: State Parser[Boolean] = { (state: State)
157174
import sbt.complete.DefaultParsers._
158175

159176
(Space ~> token("--force")).?.map(_.isDefined)
160177
}
161178

179+
val filterRulesParser: Def.Initialize[State Parser[Seq[FilterRule]]] =
180+
resolvedScoped { ctx
181+
(state: State)
182+
import sbt.complete.DefaultParsers._
183+
(Space ~> token(StringBasic, "filter")).*.map {
184+
_.map(FilterRule(_))
185+
}
186+
}
187+
162188
val artifactIdParser: Def.Initialize[State Parser[ModuleId]] =
163189
resolvedScoped { ctx
164190
(state: State)
165191
val graph = loadFromContext(moduleGraphStore, ctx, state) getOrElse ModuleGraph(Nil, Nil)
166192

167193
import sbt.complete.DefaultParsers._
168-
graph.nodes.map(_.id).map {
169-
case id @ ModuleId(org, name, version)
170-
(Space ~ token(org) ~ token(Space ~ name) ~ token(Space ~ version)).map(_ id)
171-
}.reduceOption(_ | _).getOrElse {
172-
(Space ~> token(StringBasic, "organization") ~ Space ~ token(StringBasic, "module") ~ Space ~ token(StringBasic, "version")).map {
173-
case ((((org, _), mod), _), version)
174-
ModuleId(org, mod, version)
194+
graph
195+
.nodes
196+
.map(_.id)
197+
.map {
198+
case id @ ModuleId(org, name, version)
199+
(
200+
Space ~
201+
token(org) ~
202+
token(Space ~ name) ~
203+
token(Space ~ version))
204+
.map(_ id)
205+
}
206+
.reduceOption(_ | _)
207+
.getOrElse {
208+
(
209+
Space ~>
210+
token(StringBasic, "organization") ~ Space ~
211+
token(StringBasic, "module") ~ Space ~
212+
token(StringBasic, "version"))
213+
.map {
214+
case (
215+
(
216+
((org, _), mod),
217+
_
218+
),
219+
version
220+
)
221+
ModuleId(org, mod, version)
222+
}
175223
}
176-
}
177224
}
178225

179226
// This is to support 0.13.8's InlineConfigurationWithExcludes while not forcing 0.13.8

src/main/scala/net/virtualvoid/sbt/graph/model.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,5 +73,5 @@ object ModuleGraphProtocol extends ModuleGraphProtocolCompat {
7373
implicit def seqFormat[T: Format]: Format[Seq[T]] = wrap[Seq[T], List[T]](_.toList, _.toSeq)
7474
implicit val ModuleIdFormat: Format[ModuleId] = asProduct3(ModuleId)(ModuleId.unapply(_).get)
7575
implicit val ModuleFormat: Format[Module] = asProduct6(Module)(Module.unapply(_).get)
76-
implicit val ModuleGraphFormat: Format[ModuleGraph] = asProduct2(ModuleGraph.apply _)(ModuleGraph.unapply(_).get)
76+
implicit val ModuleGraphFormat: Format[ModuleGraph] = asProduct2(ModuleGraph.apply)(ModuleGraph.unapply(_).get)
7777
}

src/main/scala/net/virtualvoid/sbt/graph/rendering/AsciiTree.scala

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,35 @@
1717
package net.virtualvoid.sbt.graph
1818
package rendering
1919

20-
import util.AsciiTreeLayout
20+
import util.AsciiTreeLayout.toAscii
2121
import util.ConsoleUtils._
2222

2323
object AsciiTree {
2424
def asciiTree(graph: ModuleGraph): String = {
2525
val deps = graph.dependencyMap
2626

2727
// there should only be one root node (the project itself)
28-
val roots = graph.roots
29-
roots.map { root
30-
AsciiTreeLayout.toAscii[Module](root, node deps.getOrElse(node.id, Seq.empty[Module]), displayModule)
31-
}.mkString("\n")
28+
graph
29+
.roots
30+
.map {
31+
root
32+
toAscii[Module](
33+
root,
34+
node
35+
deps.getOrElse(
36+
node.id,
37+
Seq.empty[Module]),
38+
displayModule)
39+
}
40+
.mkString("\n")
3241
}
3342

3443
def displayModule(module: Module): String =
35-
red(module.id.idString +
36-
module.extraInfo +
37-
module.error.map(" (error: " + _ + ")").getOrElse("") +
38-
module.evictedByVersion.map(_ formatted " (evicted by: %s)").getOrElse(""), module.hadError)
44+
red(
45+
module.id.idString +
46+
module.extraInfo +
47+
module.error.map(" (error: " + _ + ")").getOrElse("") +
48+
module.evictedByVersion.map(_ formatted " (evicted by: %s)").getOrElse(""),
49+
module.hadError
50+
)
3951
}

0 commit comments

Comments
 (0)