command line apps, taking input

import 'dart:convert';
import 'dart:io';

void main() {
  // stdin.listen((event) {
  //   print(utf8.decode(event));
  // });
  if (!stdin.hasTerminal) {
    stdin.transform(utf8.decoder).listen((event) {
      print(event);
    });
  } else {
    stdin.echoMode = true;
    stdin.lineMode = false;
    List<int> result = [];
    var subscription;
    subscription = stdin.listen(
      (event) {
        if (event.contains(4)) {
          subscription.cancel();
          print(utf8.decode(result));
        } else {
          result = result + event;
        }
      },
    );
  }
}

Comments