sbt/sbt — pull request #913 by eed3si9n (2013-10-13 00:23:59+00:00)
Title: `sh` interpolator  + `ProcessBuilder.lines` workaround. Fixes #819

This PR addresses sbt/sbt#819 for 0.14

## ProcessBuilder.lines workaround

1. `ProcessBuilder.lines` is renamed to `outputs`. That takes care of `StringOps` conflict.
2. `stringToProcess` and `stringSeqToProcess` are deprecated.
3. `lines` methods are added back as implicit using `ProcessBuilderLines`.

Thanks to 3, existing code using `Process(...).lines` are source compat. For example, Suerethian versioning works as is:

```scala
val gitHeadCommitSha = settingKey[String]("current git commit SHA")

gitHeadCommitSha in ThisBuild := Process("git rev-parse HEAD").lines.head
```

## `sh` interpolator

Instead of `run` suggested by @kriomant in #819, I picked `sh` because `ProcessBuilder` doesn't run without running it explicitly. It's also a hat tip to sbt-sh. Works like this:

```scala
val git = inputKey[Unit]("git.")

git := {
import sbt.complete.Parsers._
val dummy = "foo".lines
val args: Seq[String] = spaceDelimited("").parsed
sh"git ${args.mkString(" ")}".!
}
```

As demonstrated above, `"foo".lines` does not conflict.

### 0.14?

Since this issue is assigned to 0.14, I've added `ChangeSummary_0.14.0.rst` and used "0.14.0" in deprecation annotation. Don't merge this into 0.13 branch.