list method
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 = await _run('ls -Ap -- ${_q(absPath)}');
if (r.exitCode != 0) {
throw WorkspaceException('cannot list $absPath: ${r.stderrText.trim()}');
}
final out = <WsEntry>[];
for (final raw in const LineSplitter().convert(r.stdoutText)) {
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;
}