diff --git a/packages/flutter_tools/lib/src/base/flags.dart b/packages/flutter_tools/lib/src/base/flags.dart deleted file mode 100644 index 25aaa0677e2..00000000000 --- a/packages/flutter_tools/lib/src/base/flags.dart +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2017 The Chromium 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:args/args.dart'; - -import 'context.dart'; - -/// command-line flags and options that were specified during the invocation of -/// the Flutter tool. -Flags get flags => context.get(); - -/// Encapsulation of the command-line flags and options that were specified -/// during the invocation of the Flutter tool. -/// -/// An instance of this class is set into the [AppContext] upon invocation of -/// the Flutter tool (immediately after the arguments have been parsed in -/// [FlutterCommandRunner]) and is available via the [flags] global property. -class Flags { - Flags(this._globalResults) - : assert(_globalResults != null); - - final ArgResults _globalResults; - - /// Gets the value of the specified command-line flag/option that was set - /// during the invocation of the Flutter tool. - /// - /// This will first search for flags that are specific to the command and will - /// fall back to global flags. - /// - /// If a flag has a default value and the user did not explicitly specify a - /// value on the command-line, this will return the default value. - /// - /// If the specified flag is not defined or was not specified and had no - /// default, then this will return `null`. - dynamic operator [](String key) { - final ArgResults commandResults = _globalResults.command; - final Iterable options = commandResults?.options; - if (options != null && options.contains(key)) { - return commandResults[key]; - } else if (_globalResults.options.contains(key)) { - return _globalResults[key]; - } - return null; - } - - /// `true` iff the given flag/option was either explicitly specified by the - /// user at the command-line or it was defined to have a default value. - bool contains(String key) { - final ArgResults commandResults = _globalResults.command; - final Iterable options = commandResults?.options; - return (options != null && options.contains(key)) || _globalResults.options.contains(key); - } -} - -class EmptyFlags implements Flags { - const EmptyFlags(); - - @override - ArgResults get _globalResults => null; - - @override - String operator [](String key) => null; - - @override - bool contains(String key) => false; -} diff --git a/packages/flutter_tools/lib/src/context_runner.dart b/packages/flutter_tools/lib/src/context_runner.dart index 7a0998624a2..7f839f27b94 100644 --- a/packages/flutter_tools/lib/src/context_runner.dart +++ b/packages/flutter_tools/lib/src/context_runner.dart @@ -14,7 +14,6 @@ import 'asset.dart'; import 'base/build.dart'; import 'base/config.dart'; import 'base/context.dart'; -import 'base/flags.dart'; import 'base/io.dart'; import 'base/logger.dart'; import 'base/os.dart'; @@ -88,7 +87,6 @@ Future runInContext( DoctorValidatorsProvider: () => DoctorValidatorsProvider.defaultInstance, EmulatorManager: () => EmulatorManager(), FeatureFlags: () => const FeatureFlags(), - Flags: () => const EmptyFlags(), FlutterVersion: () => FlutterVersion(const SystemClock()), FuchsiaArtifacts: () => FuchsiaArtifacts.find(), FuchsiaDeviceTools: () => FuchsiaDeviceTools(), diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart index 3ee68501ca0..5e45819d94c 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart @@ -15,7 +15,6 @@ import '../artifacts.dart'; import '../base/common.dart'; import '../base/context.dart'; import '../base/file_system.dart'; -import '../base/flags.dart'; import '../base/io.dart' as io; import '../base/logger.dart'; import '../base/os.dart'; @@ -253,9 +252,7 @@ class FlutterCommandRunner extends CommandRunner { @override Future runCommand(ArgResults topLevelResults) async { - final Map contextOverrides = { - Flags: Flags(topLevelResults), - }; + final Map contextOverrides = {}; // Check for verbose. if (topLevelResults['verbose'] as bool) { diff --git a/packages/flutter_tools/test/general.shard/base/flags_test.dart b/packages/flutter_tools/test/general.shard/base/flags_test.dart deleted file mode 100644 index b864a07be67..00000000000 --- a/packages/flutter_tools/test/general.shard/base/flags_test.dart +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2017 The Chromium 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 'dart:async'; - -import 'package:flutter_tools/src/base/flags.dart'; -import 'package:flutter_tools/src/cache.dart'; -import 'package:flutter_tools/src/runner/flutter_command.dart'; - -import '../../src/common.dart'; -import '../../src/context.dart'; - -typedef _TestMethod = FutureOr Function(); - -void main() { - Cache.disableLocking(); - - Future runCommand(Iterable flags, _TestMethod testMethod) async { - final List args = ['test', ...flags]; - final _TestCommand command = _TestCommand(testMethod); - await createTestCommandRunner(command).run(args); - } - - testUsingContext('runCommand works as expected', () async { - bool testRan = false; - await runCommand([], () { - testRan = true; - }); - expect(testRan, isTrue); - }); - - group('flags', () { - testUsingContext('returns null for undefined flags', () async { - await runCommand([], () { - expect(flags['undefined-flag'], isNull); - }); - }); - - testUsingContext('picks up default values', () async { - await runCommand([], () { - expect(flags['verbose'], isFalse); - expect(flags['flag-defaults-to-false'], isFalse); - expect(flags['flag-defaults-to-true'], isTrue); - expect(flags['option-defaults-to-foo'], 'foo'); - }); - }); - - testUsingContext('returns null for flags with no default values', () async { - await runCommand([], () { - expect(flags['device-id'], isNull); - expect(flags['option-no-default'], isNull); - }); - }); - - testUsingContext('picks up explicit values', () async { - await runCommand([ - '--verbose', - '--flag-defaults-to-false', - '--option-no-default=explicit', - '--option-defaults-to-foo=qux', - ], () { - expect(flags['verbose'], isTrue); - expect(flags['flag-defaults-to-false'], isTrue); - expect(flags['option-no-default'], 'explicit'); - expect(flags['option-defaults-to-foo'], 'qux'); - }); - }); - }); -} - -class _TestCommand extends FlutterCommand { - _TestCommand(this.testMethod) { - argParser.addFlag('flag-defaults-to-false', defaultsTo: false); - argParser.addFlag('flag-defaults-to-true', defaultsTo: true); - argParser.addOption('option-no-default'); - argParser.addOption('option-defaults-to-foo', defaultsTo: 'foo'); - } - - final _TestMethod testMethod; - - @override - String get name => 'test'; - - @override - String get description => 'runs a test method'; - - @override - Future runCommand() async { - await testMethod(); - return null; - } -}