mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
71 lines
1.9 KiB
Dart
71 lines
1.9 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';
|
|
|
|
enum IOSDeviceConnectionInterface {
|
|
none,
|
|
usb,
|
|
network,
|
|
}
|
|
|
|
/// 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],
|
|
),
|
|
);
|
|
}
|
|
}
|