summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.sc3
-rw-r--r--cask/src/cask/internal/Util.scala32
-rw-r--r--cask/src/cask/main/ErrorMsgs.scala3
-rw-r--r--example/todo/build.sc3
4 files changed, 35 insertions, 6 deletions
diff --git a/build.sc b/build.sc
index 6dd8802..7a849d7 100644
--- a/build.sc
+++ b/build.sc
@@ -26,9 +26,6 @@ object cask extends ScalaModule{
ivy"org.scala-lang:scala-reflect:${scalaVersion()}",
ivy"io.undertow:undertow-core:2.0.11.Final",
ivy"com.lihaoyi::upickle:0.6.6",
- ivy"com.lihaoyi::scalatags:0.6.7",
- ivy"com.lihaoyi::fastparse:1.0.0",
- ivy"com.lihaoyi::pprint:0.5.3",
)
def compileIvyDeps = Agg(ivy"com.lihaoyi::acyclic:0.1.7")
def scalacOptions = Seq("-P:acyclic:force")
diff --git a/cask/src/cask/internal/Util.scala b/cask/src/cask/internal/Util.scala
index b4f33a8..7da343e 100644
--- a/cask/src/cask/internal/Util.scala
+++ b/cask/src/cask/internal/Util.scala
@@ -6,7 +6,39 @@ import scala.collection.generic.CanBuildFrom
import scala.collection.mutable
import java.io.OutputStream
+import scala.annotation.switch
+
object Util {
+
+ /**
+ * Convert a string to a C&P-able literal. Basically
+ * copied verbatim from the uPickle source code.
+ */
+ def literalize(s: IndexedSeq[Char], unicode: Boolean = true) = {
+ val sb = new StringBuilder
+ sb.append('"')
+ var i = 0
+ val len = s.length
+ while (i < len) {
+ (s(i): @switch) match {
+ case '"' => sb.append("\\\"")
+ case '\\' => sb.append("\\\\")
+ case '\b' => sb.append("\\b")
+ case '\f' => sb.append("\\f")
+ case '\n' => sb.append("\\n")
+ case '\r' => sb.append("\\r")
+ case '\t' => sb.append("\\t")
+ case c =>
+ if (c < ' ' || (c > '~' && unicode)) sb.append("\\u%04x" format c.toInt)
+ else sb.append(c)
+ }
+ i += 1
+ }
+ sb.append('"')
+
+ sb.result()
+ }
+
def transferTo(in: InputStream, out: OutputStream) = {
val buffer = new Array[Byte](8192)
diff --git a/cask/src/cask/main/ErrorMsgs.scala b/cask/src/cask/main/ErrorMsgs.scala
index f5d9cc7..c296504 100644
--- a/cask/src/cask/main/ErrorMsgs.scala
+++ b/cask/src/cask/main/ErrorMsgs.scala
@@ -1,9 +1,8 @@
package cask.main
-import java.io.{PrintWriter, StringWriter}
import cask.internal.{Router, Util}
-import fastparse.utils.Utils.literalize
+import cask.internal.Util.literalize
object ErrorMsgs {
diff --git a/example/todo/build.sc b/example/todo/build.sc
index 77a4dee..7f547d5 100644
--- a/example/todo/build.sc
+++ b/example/todo/build.sc
@@ -6,7 +6,8 @@ trait AppModule extends ScalaModule{
def ivyDeps = Agg(
ivy"com.lihaoyi::cask:0.0.1",
ivy"org.xerial:sqlite-jdbc:3.18.0",
- ivy"io.getquill::quill-jdbc:2.5.4"
+ ivy"io.getquill::quill-jdbc:2.5.4",
+ ivy"com.lihaoyi::scalatags:0.6.7",
)
object test extends Tests{