Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
eee154af
Unverified
Commit
eee154af
authored
Jan 08, 2019
by
Jonah Williams
Committed by
GitHub
Jan 08, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Replace netls and netaddr with dev_finder (#26090)
parent
a67a2f62
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
43 additions
and
56 deletions
+43
-56
fuchsia_attach.dart
packages/flutter_tools/bin/fuchsia_attach.dart
+2
-1
fuchsia_device.dart
packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart
+8
-18
fuchsia_sdk.dart
packages/flutter_tools/lib/src/fuchsia/fuchsia_sdk.dart
+28
-33
fuchsa_device_test.dart
packages/flutter_tools/test/fuchsia/fuchsa_device_test.dart
+5
-4
No files found.
packages/flutter_tools/bin/fuchsia_attach.dart
View file @
eee154af
...
...
@@ -41,6 +41,7 @@ Future<void> main(List<String> args) async {
final
String
buildDirectory
=
argResults
[
'build-dir'
];
final
File
frontendServer
=
fs
.
file
(
'
$buildDirectory
/host_x64/gen/third_party/flutter/frontend_server/frontend_server_tool.snapshot'
);
final
File
sshConfig
=
fs
.
file
(
'
$buildDirectory
/ssh-keys/ssh_config'
);
final
File
devFinder
=
fs
.
file
(
'
$buildDirectory
/host_x64/dev_finder'
);
final
File
platformKernelDill
=
fs
.
file
(
'
$buildDirectory
/flutter_runner_patched_sdk/platform_strong.dill'
);
final
File
flutterPatchedSdk
=
fs
.
file
(
'
$buildDirectory
/flutter_runner_patched_sdk'
);
final
String
packages
=
'
$buildDirectory
/dartlang/gen/
$path
/
${name}
_dart_library.packages'
;
...
...
@@ -91,7 +92,7 @@ Future<void> main(List<String> args) async {
muteCommandLogging:
false
,
verboseHelp:
false
,
overrides:
<
Type
,
Generator
>{
FuchsiaArtifacts:
()
=>
FuchsiaArtifacts
(
sshConfig:
sshConfig
),
FuchsiaArtifacts:
()
=>
FuchsiaArtifacts
(
sshConfig:
sshConfig
,
devFinder:
devFinder
),
Artifacts:
()
=>
OverrideArtifacts
(
parent:
CachedArtifacts
(),
frontendServer:
frontendServer
,
...
...
packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart
View file @
eee154af
...
...
@@ -108,12 +108,8 @@ class FuchsiaDevices extends PollingDeviceDiscovery {
if
(!
fuchsiaWorkflow
.
canListDevices
)
{
return
<
Device
>[];
}
final
String
text
=
await
fuchsiaSdk
.
netls
();
final
List
<
FuchsiaDevice
>
devices
=
<
FuchsiaDevice
>[];
for
(
String
name
in
parseFuchsiaDeviceOutput
(
text
))
{
final
String
id
=
await
fuchsiaSdk
.
netaddr
();
devices
.
add
(
FuchsiaDevice
(
id
,
name:
name
));
}
final
String
text
=
await
fuchsiaSdk
.
listDevices
();
final
List
<
FuchsiaDevice
>
devices
=
parseListDevices
(
text
);
return
devices
;
}
...
...
@@ -121,24 +117,18 @@ class FuchsiaDevices extends PollingDeviceDiscovery {
Future
<
List
<
String
>>
getDiagnostics
()
async
=>
const
<
String
>[];
}
/// Parses output from the netls tool into fuchsia devices names.
///
/// Example output:
/// $ ./netls
/// > device liliac-shore-only-last (fe80::82e4:da4d:fe81:227d/3)
@visibleForTesting
List
<
String
>
parseFuchsiaDeviceOutput
(
String
text
)
{
final
List
<
String
>
names
=
<
String
>[];
List
<
FuchsiaDevice
>
parseListDevices
(
String
text
)
{
final
List
<
FuchsiaDevice
>
devices
=
<
FuchsiaDevice
>[];
for
(
String
rawLine
in
text
.
trim
().
split
(
'
\n
'
))
{
final
String
line
=
rawLine
.
trim
();
if
(!
line
.
startsWith
(
'device'
))
continue
;
// ['device', 'device name', '(id)']
// ['ip', 'device name']
final
List
<
String
>
words
=
line
.
split
(
' '
);
final
String
name
=
words
[
1
];
names
.
add
(
name
);
final
String
id
=
words
[
0
];
devices
.
add
(
FuchsiaDevice
(
id
,
name:
name
));
}
return
nam
es
;
return
devic
es
;
}
class
FuchsiaDevice
extends
Device
{
...
...
packages/flutter_tools/lib/src/fuchsia/fuchsia_sdk.dart
View file @
eee154af
...
...
@@ -24,21 +24,15 @@ FuchsiaArtifacts get fuchsiaArtifacts => context[FuchsiaArtifacts];
/// This workflow assumes development within the fuchsia source tree,
/// including a working fx command-line tool in the user's PATH.
class
FuchsiaSdk
{
static
const
List
<
String
>
_netaddrCommand
=
<
String
>[
'fx'
,
'netaddr'
,
'--fuchsia'
,
'--nowait'
];
static
const
List
<
String
>
_netlsCommand
=
<
String
>[
'fx'
,
'netls'
,
'--nowait'
];
static
const
List
<
String
>
_syslogCommand
=
<
String
>[
'fx'
,
'syslog'
,
'--clock'
,
'Local'
];
/// Invokes the `netaddr` command.
///
/// This returns the network address of an attached fuchsia device. Does
/// not currently support multiple attached devices.
///
/// Example output:
///
$ fx netaddr --fuchsia --nowait
///
> fe80::9aaa:fcff:fe60:d3af%eth1
Future
<
String
>
netaddr
()
async
{
///
$ dev_finder list -full
///
> 192.168.42.56 paper-pulp-bush-angel
Future
<
String
>
listDevices
()
async
{
try
{
final
RunResult
process
=
await
runAsync
(
_netaddrCommand
);
final
String
path
=
fuchsiaArtifacts
.
devFinder
.
absolute
.
path
;
final
RunResult
process
=
await
runAsync
(<
String
>[
path
,
'list'
,
'-full'
]);
return
process
.
stdout
.
trim
();
}
on
ArgumentError
catch
(
exception
)
{
throwToolExit
(
'
$exception
'
);
...
...
@@ -69,36 +63,19 @@ class FuchsiaSdk {
}
return
null
;
}
/// Invokes the `netls` command.
///
/// This lists attached fuchsia devices with their name and address. Does
/// not currently support multiple attached devices.
///
/// Example output:
/// $ fx netls --nowait
/// > device liliac-shore-only-last (fe80::82e4:da4d:fe81:227d/3)
Future
<
String
>
netls
()
async
{
try
{
final
RunResult
process
=
await
runAsync
(
_netlsCommand
);
return
process
.
stdout
;
}
on
ArgumentError
catch
(
exception
)
{
throwToolExit
(
'
$exception
'
);
}
return
null
;
}
}
/// Fuchsia-specific artifacts used to interact with a device.
class
FuchsiaArtifacts
{
/// Creates a new [FuchsiaArtifacts].
///
/// May optionally provide a file `sshConfig` file.
FuchsiaArtifacts
({
File
sshConfig
})
:
_sshConfig
=
sshConfig
;
/// May optionally provide a file `sshConfig` file and `devFinder` file.
FuchsiaArtifacts
({
File
sshConfig
,
File
devFinder
})
:
_sshConfig
=
sshConfig
,
_devFinder
=
devFinder
;
/// The location of the SSH configuration file used to interact with a
///
f
uchsia device.
///
F
uchsia device.
///
/// Requires the env variable `BUILD_DIR` to be set if not provided by
/// the constructor.
...
...
@@ -114,4 +91,22 @@ class FuchsiaArtifacts {
return
_sshConfig
;
}
File
_sshConfig
;
/// The location of the dev finder tool used to locate connected
/// Fuchsia devices.
///
/// Requires the env variable `BUILD_DIR` to be set if not provided by
/// the constructor.
File
get
devFinder
{
if
(
_devFinder
==
null
)
{
final
String
buildDirectory
=
platform
.
environment
[
'BUILD_DIR'
];
if
(
buildDirectory
==
null
)
{
throwToolExit
(
'BUILD_DIR must be supplied to dev_finder. For example:
\n
'
' export BUILD_DIR=path/to/fuchsia/out/x64
\n
'
);
}
_devFinder
=
fs
.
file
(
'
$buildDirectory
/host_x64/dev_finder'
);
}
return
_devFinder
;
}
File
_devFinder
;
}
packages/flutter_tools/test/fuchsia/fuchsa_device_test.dart
View file @
eee154af
...
...
@@ -29,12 +29,13 @@ void main() {
expect
(
device
.
name
,
name
);
});
test
(
'parse
netls log
output'
,
()
{
const
String
example
=
'
device lilia-shore-only-last (fe80::0000:a00a:f00f:2002/3)
'
;
final
List
<
String
>
names
=
parseFuchsiaDeviceOutput
(
example
);
test
(
'parse
dev_finder
output'
,
()
{
const
String
example
=
'
192.168.42.56 paper-pulp-bush-angel
'
;
final
List
<
FuchsiaDevice
>
names
=
parseListDevices
(
example
);
expect
(
names
.
length
,
1
);
expect
(
names
.
first
,
'lilia-shore-only-last'
);
expect
(
names
.
first
.
name
,
'paper-pulp-bush-angel'
);
expect
(
names
.
first
.
id
,
'192.168.42.56'
);
});
test
(
'default capabilities'
,
()
async
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment