// 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: /// /// /// ```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 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.'); }