From 9ba4cb69331386dfde9bac69dc2d5b22401face3 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Wed, 12 Dec 2018 16:56:02 -0800 Subject: collapse boilerplate folder structure within src/ folders (#505) * collapse boilerplate folder structure within src/ folders * . --- scalalib/src/publish/Ivy.scala | 59 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 scalalib/src/publish/Ivy.scala (limited to 'scalalib/src/publish/Ivy.scala') diff --git a/scalalib/src/publish/Ivy.scala b/scalalib/src/publish/Ivy.scala new file mode 100644 index 00000000..22e26ff6 --- /dev/null +++ b/scalalib/src/publish/Ivy.scala @@ -0,0 +1,59 @@ +package mill.scalalib.publish + +import mill.util.Loose.Agg + +import scala.xml.PrettyPrinter + +object Ivy { + + val head = "\n" + + def apply( + artifact: Artifact, + dependencies: Agg[Dependency] + ): String = { + val xml = + + + + + + + + + + + + + + + + + + + + {dependencies.map(renderDependency).toSeq} + + + val pp = new PrettyPrinter(120, 4) + head + pp.format(xml).replaceAll(">", ">") + } + + private def renderDependency(dep: Dependency) = { + if (dep.exclusions.isEmpty) + ${dep.configuration.getOrElse("default(compile)")}"} /> + else + ${dep.configuration.getOrElse("default(compile)")}"}> + {dep.exclusions.map(ex => )} + + } + + private def scopeToConf(s: Scope): String = s match { + case Scope.Compile => "compile" + case Scope.Provided => "provided" + case Scope.Test => "test" + case Scope.Runtime => "runtime" + } + +} -- cgit v1.2.3