| // Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| /// Retrieves the value associated with the '--config' argument from a list of |
| /// command-line arguments. |
| /// |
| /// This function iterates through the provided [arguments] list to find an |
| /// argument that either starts with '--config=' (e.g., '--config=value') or is |
| /// exactly '--config' followed by its value in the next argument. |
| /// |
| /// Throws a [StateError] if no '--config' argument is found with an associated |
| /// value. |
| /// |
| /// Example usage: |
| /// |
| /// <!-- no-source-file --> |
| /// ```dart |
| /// // If arguments is ['--verbose', '--config=dev_settings.json'] |
| /// String config1 = getInputArgument(arguments); // Returns 'dev_settings.json' |
| /// |
| /// // If arguments is ['--config', 'prod_settings.json'] |
| /// String config2 = getInputArgument(arguments); // Returns 'prod_settings.json' |
| /// |
| /// // If arguments is ['--help'] |
| /// // getInputArgument(arguments); // Throws StateError |
| /// ``` |
| String getInputArgument(List<String> arguments) { |
| for (var i = 0; i < arguments.length; ++i) { |
| final argument = arguments[i]; |
| if (argument.startsWith('--config=')) { |
| return argument.substring('--config='.length); |
| } |
| if (argument == '--config') { |
| if ((i + 1) < arguments.length) { |
| return arguments[i + 1]; |
| } |
| } |
| } |
| throw StateError('No --config argument given.'); |
| } |