@@ -53,23 +53,34 @@ Map<String, int> parseDirectoryArgs(List<String> args) {
5353/// [args] only if it is specified.
5454///
5555/// Otherwise, returns a default of `'localhost'` .
56- String parseHostname (List <String > args) {
56+ ParseHostnameResults parseHostname (List <String > args) {
57+ var hostname = 'localhost' ;
58+ final remainingArgs = < String > [];
59+ var skipNext = false ;
5760 for (var i = 0 ; i < args.length; i++ ) {
58- if (! args[i].startsWith ('--hostname' )) {
61+ if (skipNext) {
62+ skipNext = false ;
5963 continue ;
60- }
61- if (args[i].contains ('=' )) {
64+ } else if (! args[i].startsWith ('--hostname' )) {
65+ remainingArgs.add (args[i]);
66+ } else if (args[i].contains ('=' )) {
6267 // --hostname=<value>
63- return args[i].split ('=' )[1 ];
64- }
65- if (i + 1 < args.length && ! args[i + 1 ].startsWith ('-' )) {
68+ hostname = args[i].split ('=' )[1 ];
69+ } else if (i + 1 < args.length && ! args[i + 1 ].startsWith ('-' )) {
6670 // --hostname <value>
67- return args[i + 1 ];
71+ hostname = args[i + 1 ];
72+ skipNext = true ;
6873 }
6974 }
70- return 'localhost' ;
75+ return ParseHostnameResults (hostname, remainingArgs) ;
7176
7277 // TODO: Use when webdev `--hostname=any` support is released
7378 // HttpMultiServer supports `any` as a more flexible localhost.
7479 // return 'any';
7580}
81+
82+ class ParseHostnameResults {
83+ final String hostname;
84+ final List <String > remainingArgs;
85+ ParseHostnameResults (this .hostname, this .remainingArgs);
86+ }
0 commit comments