+++ /dev/null
-<?php
-
-/**
- * @file
- * Provides State commands.
- */
-
-/**
- * Implementation of hook_drush_help().
- */
-function state_drush_help($section) {
- switch ($section) {
- case 'meta:state:title':
- return dt('State commands');
- case 'meta:state:summary':
- return dt('Interact with the State system.');
- }
-}
-
-/**
- * Implementation of hook_drush_command().
- */
-function state_drush_command() {
- $items['state-get'] = array(
- 'description' => 'Display a state value.',
- 'arguments' => array(
- 'key' => 'The key name.',
- ),
- 'required-arguments' => 1,
- 'examples' => array(
- 'drush state-get system.cron_last' => 'Displays last cron run timestamp',
- ),
- 'outputformat' => array(
- 'default' => 'json',
- 'pipe-format' => 'json',
- ),
- 'aliases' => array('sget'),
- 'core' => array('8+'),
- );
-
- $items['state-set'] = array(
- 'description' => 'Set a state value.',
- 'arguments' => array(
- 'key' => 'The state key, for example "system.cron_last".',
- 'value' => 'The value to assign to the state key. Use \'-\' to read from STDIN.',
- ),
- 'required arguments' => 2,
- 'options' => array(
- 'format' => array(
- 'description' => 'Deprecated. See input-format option.',
- 'example-value' => 'boolean',
- 'value' => 'required',
- ),
- 'input-format' => array(
- 'description' => 'Type for the value. Use "auto" to detect format from value. Other recognized values are string, integer float, or boolean for corresponding primitive type, or json, yaml for complex types.',
- 'example-value' => 'boolean',
- 'value' => 'required',
- ),
- // A convenient way to pass a multiline value within a backend request.
- 'value' => array(
- 'description' => 'The value to assign to the state key (if any).',
- 'hidden' => TRUE,
- ),
- ),
- 'examples' => array(
- 'drush state-set system.cron_last 1406682882 --format=integer' => 'Sets a timestamp for last cron run.',
- 'php -r "print json_encode(array(\'drupal\', \'simpletest\'));" | drush state-set --format=json foo.name -'=> 'Set a key to a complex value (e.g. array)',
- ),
- 'aliases' => array('sset'),
- 'core' => array('8+'),
- );
-
- $items['state-delete'] = array(
- 'description' => 'Delete a state value.',
- 'arguments' => array(
- 'key' => 'The state key, for example "system.cron_last".',
- ),
- 'required arguments' => 1,
- 'examples' => array(
- 'drush state-del system.cron_last' => 'Delete state entry for system.cron_last.',
- ),
- 'aliases' => array('sdel'),
- 'core' => array('8+'),
- );
-
- return $items;
-}
-
-/**
- * State get command callback.
- *
- * @state $key
- * The state key.
- */
-function drush_state_get($key = NULL) {
- return \Drupal::state()->get($key);
-}
-
-/**
- * State set command callback.
- *
- * @param $key
- * The config key.
- * @param $value
- * The data to save to state.
- */
-function drush_state_set($key = NULL, $value = NULL) {
- // This hidden option is a convenient way to pass a value without passing a key.
- $value = drush_get_option('value', $value);
-
- if (!isset($value)) {
- return drush_set_error('DRUSH_STATE_ERROR', dt('No state value specified.'));
- }
-
- // Special flag indicating that the value has been passed via STDIN.
- if ($value === '-') {
- $value = stream_get_contents(STDIN);
- }
-
- // If the value is a string (usual case, unless we are called from code),
- // then format the input.
- if (is_string($value)) {
- $value = drush_value_format($value, drush_get_option('format', 'auto'));
- }
-
- \Drupal::state()->set($key, $value);
-}
-
-/**
- * State delete command callback.
- *
- * @state $key
- * The state key.
- */
-function drush_state_delete($key = NULL) {
- \Drupal::state()->delete($key);
-}