Pty.start constructor

Pty.start(
  1. String executable, {
  2. List<String> arguments = const [],
  3. String? workingDirectory,
  4. Map<String, String>? environment,
  5. String? terminalProgramVersion,
  6. int rows = 25,
  7. int columns = 80,
  8. bool ackRead = false,
})

Spawns a process in a pseudo-terminal. The arguments have the same meaning as in Process.start. ackRead indicates if the pty should wait for a call to Pty.ackRead before sending the next data.

Implementation

factory Pty.start(
  String executable, {
  List<String> arguments = const [],
  String? workingDirectory,
  Map<String, String>? environment,
  String? terminalProgramVersion,
  int rows = 25,
  int columns = 80,
  bool ackRead = false,
}) {
  validatePtyStartOptions(
    executable: executable,
    arguments: arguments,
    workingDirectory: workingDirectory,
    environment: environment,
    terminalProgramVersion: terminalProgramVersion,
    rows: rows,
    columns: columns,
  );
  _ensureInitialized();

  final pty = Pty._(executable, arguments);
  try {
    pty._start(
      workingDirectory: workingDirectory,
      environment: environment,
      terminalProgramVersion: terminalProgramVersion,
      rows: rows,
      columns: columns,
      ackRead: ackRead,
    );
    return pty;
  } catch (_) {
    pty._closePorts();
    rethrow;
  }
}