| // Copyright 2013 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:meta/meta.dart'; |
| |
| /// An overridable collection of values provided by the environment. |
| @immutable |
| final class Environment { |
| /// Creates a new environment from the given values. |
| const Environment({ |
| required this.isCi, |
| required this.showVerbose, |
| required this.logsDir, |
| }); |
| |
| /// Whether the current program is running on a CI environment. |
| /// |
| /// Useful for determining if certain features should be enabled or disabled |
| /// based on the environment, or to add safety checks (for example, using |
| /// confusing or ambiguous flags). |
| final bool isCi; |
| |
| /// Whether the user has requested verbose logging and program output. |
| final bool showVerbose; |
| |
| /// What directory to store logs and screenshots in. |
| final String? logsDir; |
| |
| @override |
| bool operator ==(Object o) { |
| return o is Environment && |
| o.isCi == isCi && |
| o.showVerbose == showVerbose && |
| o.logsDir == logsDir; |
| } |
| |
| @override |
| int get hashCode => Object.hash(isCi, showVerbose, logsDir); |
| |
| @override |
| String toString() { |
| return 'Environment(isCi: $isCi, showVerbose: $showVerbose, logsDir: $logsDir)'; |
| } |
| } |