Michael Goderbauer 5491c8c146
Auto-format Framework (#160545)
This auto-formats all *.dart files in the repository outside of the
`engine` subdirectory and enforces that these files stay formatted with
a presubmit check.

**Reviewers:** Please carefully review all the commits except for the
one titled "formatted". The "formatted" commit was auto-generated by
running `dev/tools/format.sh -a -f`. The other commits were hand-crafted
to prepare the repo for the formatting change. I recommend reviewing the
commits one-by-one via the "Commits" tab and avoiding Github's "Files
changed" tab as it will likely slow down your browser because of the
size of this PR.

---------

Co-authored-by: Kate Lovett <katelovett@google.com>
Co-authored-by: LongCatIsLooong <31859944+LongCatIsLooong@users.noreply.github.com>
2024-12-19 20:06:21 +00:00

54 lines
1.7 KiB
Dart

// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:process/process.dart';
import '../base/io.dart';
import '../base/logger.dart';
import '../base/process.dart';
/// Wraps iproxy command line tool port forwarding.
///
/// See https://github.com/libimobiledevice/libusbmuxd.
class IProxy {
IProxy({
required String iproxyPath,
required Logger logger,
required ProcessManager processManager,
required MapEntry<String, String> dyLdLibEntry,
}) : _dyLdLibEntry = dyLdLibEntry,
_processUtils = ProcessUtils(processManager: processManager, logger: logger),
_logger = logger,
_iproxyPath = iproxyPath;
/// Create a [IProxy] for testing.
///
/// This specifies the path to iproxy as 'iproxy` and the dyLdLibEntry as
/// 'DYLD_LIBRARY_PATH: /path/to/libs'.
factory IProxy.test({required Logger logger, required ProcessManager processManager}) {
return IProxy(
iproxyPath: 'iproxy',
logger: logger,
processManager: processManager,
dyLdLibEntry: const MapEntry<String, String>('DYLD_LIBRARY_PATH', '/path/to/libs'),
);
}
final String _iproxyPath;
final ProcessUtils _processUtils;
final Logger _logger;
final MapEntry<String, String> _dyLdLibEntry;
Future<Process> forward(int devicePort, int hostPort, String deviceId) {
// Usage: iproxy LOCAL_PORT:DEVICE_PORT --udid UDID
return _processUtils.start(<String>[
_iproxyPath,
'$hostPort:$devicePort',
'--udid',
deviceId,
if (_logger.isVerbose) '--debug',
], environment: Map<String, String>.fromEntries(<MapEntry<String, String>>[_dyLdLibEntry]));
}
}