function drush_choice
8.0.x drush.inc | drush_choice($options, $prompt = 'Enter a number.', $label = '!value', $widths = array()) |
6.x drush.inc | drush_choice($options, $prompt = 'Enter a number.', $label = '!value', $widths = array()) |
7.x drush.inc | drush_choice($options, $prompt = 'Enter a number.', $label = '!value', |
3.x drush.inc | drush_choice($options, $prompt = 'Enter a number.', $label = '!value') |
4.x drush.inc | drush_choice($options, $prompt = 'Enter a number.', $label = '!value') |
5.x drush.inc | drush_choice($options, $prompt = 'Enter a number.', $label = '!value', $widths = array()) |
master drush.inc | drush_choice($options, $prompt = 'Enter a number.', $label = '!value', $widths = array()) |
Ask the user to select an item from a list. From a provided associative array, drush_choice will display all of the questions, numbered from 1 to N, and return the item the user selected. "0" is always cancel; entering a blank line is also interpreted as cancelling.
Parameters
$options: A list of questions to display to the user. The KEYS of the array are the result codes to return to the caller; the VALUES are the messages to display on each line. Special keys of the form '-- something --' can be provided as separator between choices groups. Separator keys don't alter the numbering.
$prompt: The message to display to the user prompting for input.
$label: Controls the display of each line. Defaults to '!value', which displays the value of each item in the $options array to the user. Use '!key' to display the key instead. In some instances, it may be useful to display both the key and the value; for example, if the key is a user id and the value is the user name, use '!value (uid=!key)'.
- drush_core_cache_clear in commands/
core/ clear.cache.inc - Command callback for drush cache-clear.
- drush_core_watchdog_list in commands/
core/ watchdog.drush.inc - Command callback.
- drush_variable_delete in commands/
core/ variable.drush.inc - Command callback. Delete a variable.
- drush_variable_set in commands/
core/ variable.drush.inc - Command callback. Set a variable.
File
- includes/
drush.inc, line 906 - The drush API implementation and helpers.
Code
function drush_choice($options, $prompt = 'Enter a number.', $label = '!value') {
print dt($prompt) . "\n";
drush_print(' [0] : Cancel');
$selection_number = 0;
foreach ($options as $key => $option) {
if ((substr($key, 0, 3) == '-- ') && (substr($key, -3) == ' --')) {
drush_print(" " . $option);
continue;
}
$selection_number++;
$message = dt($label, array('!number' => $selection_number, '!key' => $key, '!value' => $option));
drush_print(dt(" [!number] : !message", array('!number' => $selection_number, '!message' => $message)));
$selection_list[$selection_number] = $key;
}
while ($line = trim(fgets(STDIN))) {
if (array_key_exists($line, $selection_list)) {
return $selection_list[$line];
}
}
drush_print(dt('Cancelled'));
return FALSE;
}