execute method
Execute command on a single folder.
Called by ToolRunner for each folder during traversal. Returns an ItemResult describing the outcome.
Implementation
@override
Future<ItemResult> execute(CommandContext context, CliArgs args) async {
try {
final dir = workingDirectory ?? context.path;
final result = await Process.run(
'sh',
['-c', shellCommand],
workingDirectory: dir,
);
if (result.exitCode != 0) {
return ItemResult.failure(
path: context.path,
name: context.name,
error: result.stderr.toString(),
);
}
return ItemResult.success(
path: context.path,
name: context.name,
message: printOutput ? result.stdout.toString() : null,
);
} catch (e) {
return ItemResult.failure(
path: context.path,
name: context.name,
error: e.toString(),
);
}
}