@@ -12,14 +12,17 @@ import '../base/common.dart';
12
12
import '../base/context.dart' ;
13
13
import '../base/file_system.dart' ;
14
14
import '../base/io.dart' ;
15
+ import '../base/logger.dart' ;
16
+ import '../base/platform.dart' ;
17
+ import '../base/signals.dart' ;
18
+ import '../base/terminal.dart' ;
15
19
import '../build_info.dart' ;
16
20
import '../commands/daemon.dart' ;
17
21
import '../compile.dart' ;
18
22
import '../daemon.dart' ;
19
23
import '../device.dart' ;
20
24
import '../device_port_forwarder.dart' ;
21
25
import '../fuchsia/fuchsia_device.dart' ;
22
- import '../globals.dart' as globals;
23
26
import '../ios/devices.dart' ;
24
27
import '../ios/simulators.dart' ;
25
28
import '../macos/macos_ipad_device.dart' ;
@@ -58,7 +61,26 @@ import '../vmservice.dart';
58
61
/// To attach to a flutter mod running on a fuchsia device, `--module` must
59
62
/// also be provided.
60
63
class AttachCommand extends FlutterCommand {
61
- AttachCommand ({bool verboseHelp = false , this .hotRunnerFactory}) {
64
+ AttachCommand ({
65
+ bool verboseHelp = false ,
66
+ HotRunnerFactory ? hotRunnerFactory,
67
+ required Artifacts ? artifacts,
68
+ required Stdio stdio,
69
+ required Logger logger,
70
+ required Terminal terminal,
71
+ required Signals signals,
72
+ required Platform platform,
73
+ required ProcessInfo processInfo,
74
+ required FileSystem fileSystem,
75
+ }): _artifacts = artifacts,
76
+ _hotRunnerFactory = hotRunnerFactory ?? HotRunnerFactory (),
77
+ _stdio = stdio,
78
+ _logger = logger,
79
+ _terminal = terminal,
80
+ _signals = signals,
81
+ _platform = platform,
82
+ _processInfo = processInfo,
83
+ _fileSystem = fileSystem {
62
84
addBuildModeFlags (verboseHelp: verboseHelp, defaultToRelease: false , excludeRelease: true );
63
85
usesTargetOption ();
64
86
usesPortOptions (verboseHelp: verboseHelp);
@@ -117,10 +139,17 @@ class AttachCommand extends FlutterCommand {
117
139
addDdsOptions (verboseHelp: verboseHelp);
118
140
addDevToolsOptions (verboseHelp: verboseHelp);
119
141
usesDeviceTimeoutOption ();
120
- hotRunnerFactory ?? = HotRunnerFactory ();
121
142
}
122
143
123
- HotRunnerFactory ? hotRunnerFactory;
144
+ final HotRunnerFactory _hotRunnerFactory;
145
+ final Artifacts ? _artifacts;
146
+ final Stdio _stdio;
147
+ final Logger _logger;
148
+ final Terminal _terminal;
149
+ final Signals _signals;
150
+ final Platform _platform;
151
+ final ProcessInfo _processInfo;
152
+ final FileSystem _fileSystem;
124
153
125
154
@override
126
155
final String name = 'attach' ;
@@ -221,7 +250,7 @@ known, it can be explicitly provided to attach via the command-line, e.g.
221
250
throwToolExit ('Did not find any valid target devices.' );
222
251
}
223
252
224
- final Artifacts ? overrideArtifacts = device.artifactOverrides ?? globals.artifacts ;
253
+ final Artifacts ? overrideArtifacts = device.artifactOverrides ?? _artifacts ;
225
254
await context.run <void >(
226
255
body: () => _attachToDevice (device),
227
256
overrides: < Type , Generator > {
@@ -238,12 +267,12 @@ known, it can be explicitly provided to attach via the command-line, e.g.
238
267
final Daemon ? daemon = boolArgDeprecated ('machine' )
239
268
? Daemon (
240
269
DaemonConnection (
241
- daemonStreams: DaemonStreams .fromStdio (globals.stdio , logger: globals.logger ),
242
- logger: globals.logger ,
270
+ daemonStreams: DaemonStreams .fromStdio (_stdio , logger: _logger ),
271
+ logger: _logger ,
243
272
),
244
- notifyingLogger: (globals.logger is NotifyingLogger )
245
- ? globals.logger as NotifyingLogger
246
- : NotifyingLogger (verbose: globals.logger. isVerbose, parent: globals.logger ),
273
+ notifyingLogger: (_logger is NotifyingLogger )
274
+ ? _logger as NotifyingLogger
275
+ : NotifyingLogger (verbose: _logger. isVerbose, parent: _logger ),
247
276
logToStdout: true ,
248
277
)
249
278
: null ;
@@ -296,9 +325,9 @@ known, it can be explicitly provided to attach via the command-line, e.g.
296
325
ipv6: ipv6! ,
297
326
devicePort: deviceVmservicePort,
298
327
hostPort: hostVmservicePort,
299
- logger: globals.logger ,
328
+ logger: _logger ,
300
329
);
301
- globals .printStatus ('Waiting for a connection from Flutter on ${device .name }...' );
330
+ _logger .printStatus ('Waiting for a connection from Flutter on ${device .name }...' );
302
331
observatoryUri = observatoryDiscovery.uris;
303
332
// Determine ipv6 status from the scanned logs.
304
333
usesIpv6 = observatoryDiscovery.ipv6;
@@ -316,7 +345,7 @@ known, it can be explicitly provided to attach via the command-line, e.g.
316
345
).asBroadcastStream ();
317
346
}
318
347
319
- globals.terminal .usesTerminalUi = daemon == null ;
348
+ _terminal .usesTerminalUi = daemon == null ;
320
349
321
350
try {
322
351
int ? result;
@@ -343,9 +372,9 @@ known, it can be explicitly provided to attach via the command-line, e.g.
343
372
device,
344
373
null ,
345
374
true ,
346
- globals.fs .currentDirectory,
375
+ _fileSystem .currentDirectory,
347
376
LaunchMode .attach,
348
- globals.logger as AppRunLogger ,
377
+ _logger as AppRunLogger ,
349
378
);
350
379
} on Exception catch (error) {
351
380
throwToolExit (error.toString ());
@@ -366,10 +395,10 @@ known, it can be explicitly provided to attach via the command-line, e.g.
366
395
unawaited (onAppStart.future.whenComplete (() {
367
396
terminalHandler = TerminalHandler (
368
397
runner,
369
- logger: globals.logger ,
370
- terminal: globals.terminal ,
371
- signals: globals.signals ,
372
- processInfo: globals.processInfo ,
398
+ logger: _logger ,
399
+ terminal: _terminal ,
400
+ signals: _signals ,
401
+ processInfo: _processInfo ,
373
402
reportReady: boolArgDeprecated ('report-ready' ),
374
403
pidFile: stringArgDeprecated ('pid-file' ),
375
404
)
@@ -389,7 +418,7 @@ known, it can be explicitly provided to attach via the command-line, e.g.
389
418
if (runner.exited || ! runner.isWaitingForObservatory) {
390
419
break ;
391
420
}
392
- globals .printStatus ('Waiting for a new connection from Flutter on ${device .name }...' );
421
+ _logger .printStatus ('Waiting for a new connection from Flutter on ${device .name }...' );
393
422
}
394
423
} on RPCError catch (err) {
395
424
if (err.code == RPCErrorCodes .kServiceDisappeared) {
@@ -422,7 +451,7 @@ known, it can be explicitly provided to attach via the command-line, e.g.
422
451
targetModel: TargetModel (stringArgDeprecated ('target-model' )! ),
423
452
buildInfo: buildInfo,
424
453
userIdentifier: userIdentifier,
425
- platform: globals.platform ,
454
+ platform: _platform ,
426
455
);
427
456
flutterDevice.observatoryUris = observatoryUris;
428
457
final List <FlutterDevice > flutterDevices = < FlutterDevice > [flutterDevice];
@@ -434,7 +463,7 @@ known, it can be explicitly provided to attach via the command-line, e.g.
434
463
);
435
464
436
465
return buildInfo.isDebug
437
- ? hotRunnerFactory ! .build (
466
+ ? _hotRunnerFactory .build (
438
467
flutterDevices,
439
468
target: targetFile,
440
469
debuggingOptions: debuggingOptions,
0 commit comments