aboutsummaryrefslogtreecommitdiff
path: root/bridge/src/main/scala/xsbt/ScaladocInterface.scala
diff options
context:
space:
mode:
Diffstat (limited to 'bridge/src/main/scala/xsbt/ScaladocInterface.scala')
-rw-r--r--bridge/src/main/scala/xsbt/ScaladocInterface.scala33
1 files changed, 30 insertions, 3 deletions
diff --git a/bridge/src/main/scala/xsbt/ScaladocInterface.scala b/bridge/src/main/scala/xsbt/ScaladocInterface.scala
index 39458bd1d..42f4296fe 100644
--- a/bridge/src/main/scala/xsbt/ScaladocInterface.scala
+++ b/bridge/src/main/scala/xsbt/ScaladocInterface.scala
@@ -20,12 +20,39 @@ class DottydocRunner(args: Array[String], log: Logger, delegate: xsbti.Reporter)
template.fold(writeJson(index, outputFolder)) { tpl =>
buildDocs(outputFolder, tpl, resources, index)
}
+ } getOrElse {
+ delegate.log(
+ NoPosition,
+ "No output folder set for API documentation (\"-d\" parameter should be passed to the documentation tool)",
+ xsbti.Severity.Error
+ )
}
+ private[this] val NoPosition = new xsbti.Position {
+ val line = xsbti.Maybe.nothing[Integer]
+ val lineContent = ""
+ val offset = xsbti.Maybe.nothing[Integer]
+ val sourcePath = xsbti.Maybe.nothing[String]
+ val sourceFile = xsbti.Maybe.nothing[java.io.File]
+ val pointer = xsbti.Maybe.nothing[Integer]
+ val pointerSpace = xsbti.Maybe.nothing[String]
+ }
+
+ private def getStringSetting(name: String): Option[String] =
+ args find (_.startsWith(name)) map (_.drop(name.length))
+
private def getOutputFolder(args: Array[String]): Option[String] =
- args sliding(2) find { case Array(x, _) => x == "-d" } map (_.tail.head)
+ args sliding(2) find { case Array(x, _) => x == "-d" } map (_.tail.head.trim)
+
+ private def getTemplate(args: Array[String]): Option[String] =
+ getStringSetting("-template:")
- private def getTemplate(args: Array[String]): Option[String] = None
+ private def getResources(args: Array[String]): List[String] =
+ getStringSetting("-resources:").map { path =>
+ val dir = new java.io.File(path)
+ if (dir.exists && dir.isDirectory)
+ dir.listFiles.filter(_.isFile).map(_.getAbsolutePath).toList
+ else Nil
+ }.getOrElse(Nil)
- private def getResources(args: Array[String]): List[String] = Nil
}