runAdkCli function
Implementation
Future<int> runAdkCli(
List<String> args, {
IOSink? outSink,
IOSink? errSink,
}) async {
final IOSink out = outSink ?? stdout;
final IOSink err = errSink ?? stderr;
if (args.isEmpty || args.first == '-h' || args.first == '--help') {
out.writeln(adkUsage);
return 0;
}
if (args.length > 1 && (args[1] == '-h' || args[1] == '--help')) {
out.writeln(adkUsage);
return 0;
}
final ParsedAdkCommand parsed;
try {
parsed = parseAdkCliArgs(args);
} on CliUsageError catch (error) {
err.writeln(error.message);
err.writeln('');
err.writeln(adkUsage);
return 64;
}
try {
switch (parsed.type) {
case AdkCommandType.create:
return _runCreateCommand(parsed, out);
case AdkCommandType.run:
return _runRunCommand(parsed, out);
case AdkCommandType.web:
return _runWebCommand(parsed, out, err);
}
} on FileSystemException catch (error) {
err.writeln('Filesystem error: $error');
return 1;
} on SocketException catch (error) {
err.writeln('Network error: $error');
return 1;
} on FormatException catch (error) {
err.writeln('Config parse error: $error');
return 1;
}
}