def run(*args, &block)
      command_line = normalize_command_line(*args, &block)

      report command_line.string_format + " ", false
      result = execute(command_line)
      report "=> #{result.exit_code}"
      report_verbose result.format_streams
      return result
    ensure
      report_verbose ""
    end
def run(*args, &block)
      command_line = normalize_command_line(*args, &block)

      report command_line.string_format + " ", false
      result = execute(command_line)
      report "=> #{result.exit_code}"
      report_verbose result.format_streams
      return result
    ensure
      report_verbose ""
    end
@!group Running Commands
 Run the command, wait for termination, and collect the results.
 Returns an instance of CommandRunResult that contains the output
 and exit code of the command. This version {#report}s some information to document that the
 command is running.  For a terser version, call {#execute} directly

 @!macro normalized
   @yield [CommandLine] command about to be run (for configuration)
   @return [CommandRunResult] used to refer to and inspect the resulting
     process
   @overload $0(&block)
   @overload $0(cmd, &block)
     @param [CommandLine] execute
   @overload $0(*cmd_strings, &block)
     @param [Array<String>] a set of strings to parse into a {CommandLine}