Add a "direct" mode to "blaze run" that makes the process being run a direct
child of the process where the Blaze client itself was run.

Limitations:

- Untested on Windows; it should work because ExecuteProgram() is implemented there, too, but since Windows doesn't support exec(), there is at least one process in between

Progress towards #2815.

RELNOTES[NEW]: The new "--direct_run" flag on "blaze run" lets one run interactive binaries.

PiperOrigin-RevId: 184528845
diff --git a/src/main/java/com/google/devtools/build/lib/shell/Command.java b/src/main/java/com/google/devtools/build/lib/shell/Command.java
index 0e8c5a0..1584275 100644
--- a/src/main/java/com/google/devtools/build/lib/shell/Command.java
+++ b/src/main/java/com/google/devtools/build/lib/shell/Command.java
@@ -46,7 +46,7 @@
  * <p>The most basic use-case for this class is as follows:
  * <pre>
  *   String[] args = { "/bin/du", "-s", directory };
- *   CommandResult result = new Command(args).execute();
+ *   BlazeCommandResult result = new Command(args).execute();
  *   String output = new String(result.getStdout());
  * </pre>
  * which writes the output of the {@code du(1)} command into {@code output}. More complex cases
@@ -78,7 +78,7 @@
  * <p>To execute a shell command directly, use the following pattern:
  * <pre>
  *   String[] args = { "/bin/sh", "-c", shellCommand };
- *   CommandResult result = new Command(args).execute();
+ *   BlazeCommandResult result = new Command(args).execute();
  * </pre>
  * {@code shellCommand} is a complete Bourne shell program, possibly containing all kinds of
  * unescaped metacharacters.  For example, here's a shell command that enumerates the working