list method

  1. @override
Future<List<WsEntry>> list(
  1. String absPath
)
override

Lists the entries of directory absPath.

Implementation

@override
Future<List<WsEntry>> list(String absPath) async {
  // `-Ap` lists dotfiles (minus . / ..) and appends `/` to directory names.
  final r = _check(
    await _run(
      'ls -Ap -- ${_q(absPath)}',
      windows: windowsListScript(absPath),
    ),
    'list',
    absPath,
  );
  final listing = _windows ? _fromBase64(r.stdoutText) : r.stdoutText;
  final out = <WsEntry>[];
  for (final raw in const LineSplitter().convert(listing)) {
    final name = raw.trimRight();
    if (name.isEmpty) continue;
    final isDir = name.endsWith('/');
    out.add(
      WsEntry(
        isDir ? name.substring(0, name.length - 1) : name,
        isDir: isDir,
      ),
    );
  }
  return out;
}