connect static method
Connects to the current daemon instance.
The options of the running daemon are checked against daemonCommand.
If there is a mismatch, an exception is thrown.
If one is not running, a new daemon instance will be started.
Implementation
static Future<BuildDaemonClient> connect(
String workingDirectory,
List<String> daemonCommand, {
Serializers? serializersOverride,
void Function(ServerLog)? logHandler,
bool includeParentEnvironment = true,
Map<String, String>? environment,
BuildMode buildMode = BuildMode.Auto,
}) async {
logHandler ??= (_) {};
final daemonArgs = daemonCommand.sublist(1)
..add('--$buildModeFlag=$buildMode');
final process = await Process.start(
daemonCommand.first,
daemonArgs,
mode: ProcessStartMode.detachedWithStdio,
workingDirectory: workingDirectory,
environment: environment,
includeParentEnvironment: includeParentEnvironment,
);
try {
await _handleDaemonStartup(process, logHandler);
} catch (_) {
process.kill();
rethrow;
}
return connectUnchecked(
workingDirectory,
serializersOverride: serializersOverride,
logHandler: logHandler,
);
}