From f31b603b6bd7f71efc5bf14f41ea8a7192d1899d Mon Sep 17 00:00:00 2001 From: Drush Documentation Bot Date: Thu, 21 Sep 2023 11:54:40 +0000 Subject: [PATCH] Deployed 17c927706 to 12.x with MkDocs 1.4.3 and mike 1.1.2 --- 12.x/404.html | 28 + 12.x/bootstrap/index.html | 28 + 12.x/commands/all/index.html | 28 + 12.x/commands/archive_dump/index.html | 28 + 12.x/commands/archive_restore/index.html | 28 + 12.x/commands/browse/index.html | 28 + 12.x/commands/cache_clear/index.html | 28 + 12.x/commands/cache_get/index.html | 28 + 12.x/commands/cache_rebuild/index.html | 28 + 12.x/commands/cache_set/index.html | 28 + 12.x/commands/cache_tags/index.html | 28 + 12.x/commands/completion/index.html | 28 + 12.x/commands/config_delete/index.html | 28 + 12.x/commands/config_edit/index.html | 28 + 12.x/commands/config_export/index.html | 28 + 12.x/commands/config_get/index.html | 28 + 12.x/commands/config_import/index.html | 28 + 12.x/commands/config_pull/index.html | 28 + 12.x/commands/config_set/index.html | 28 + 12.x/commands/config_status/index.html | 28 + 12.x/commands/core_cron/index.html | 28 + 12.x/commands/core_edit/index.html | 28 + 12.x/commands/core_requirements/index.html | 28 + 12.x/commands/core_route/index.html | 28 + 12.x/commands/core_rsync/index.html | 28 + 12.x/commands/core_status/index.html | 28 + 12.x/commands/core_topic/index.html | 28 + 12.x/commands/deploy/index.html | 28 + 12.x/commands/deploy_hook-status/index.html | 28 + 12.x/commands/deploy_hook/index.html | 28 + 12.x/commands/deploy_mark-complete/index.html | 28 + 12.x/commands/drupal_directory/index.html | 28 + 12.x/commands/entity_delete/index.html | 28 + 12.x/commands/entity_save/index.html | 28 + 12.x/commands/field_base-info/index.html | 28 + .../field_base-override-create/index.html | 28 + 12.x/commands/field_create/index.html | 28 + 12.x/commands/field_delete/index.html | 28 + 12.x/commands/field_formatters/index.html | 28 + 12.x/commands/field_info/index.html | 28 + 12.x/commands/field_types/index.html | 28 + 12.x/commands/field_widgets/index.html | 28 + 12.x/commands/generate/index.html | 28 + 12.x/commands/help/index.html | 28 + 12.x/commands/image_derive/index.html | 28 + 12.x/commands/image_flush/index.html | 28 + 12.x/commands/index.html | 28 + 12.x/commands/jn_get/index.html | 28 + 12.x/commands/list/index.html | 28 + 12.x/commands/locale_check/index.html | 28 + 12.x/commands/locale_clear-status/index.html | 28 + 12.x/commands/locale_export/index.html | 28 + 12.x/commands/locale_import-all/index.html | 28 + 12.x/commands/locale_import/index.html | 28 + 12.x/commands/locale_update/index.html | 28 + 12.x/commands/maint_get/index.html | 28 + 12.x/commands/maint_set/index.html | 28 + 12.x/commands/maint_status/index.html | 28 + .../commands/migrate_fields-source/index.html | 28 + 12.x/commands/migrate_import/index.html | 28 + 12.x/commands/migrate_messages/index.html | 28 + 12.x/commands/migrate_reset-status/index.html | 28 + 12.x/commands/migrate_rollback/index.html | 28 + 12.x/commands/migrate_status/index.html | 28 + 12.x/commands/migrate_stop/index.html | 28 + 12.x/commands/mk_docs/index.html | 28 + 12.x/commands/php_cli/index.html | 28 + 12.x/commands/php_eval/index.html | 28 + 12.x/commands/php_script/index.html | 28 + 12.x/commands/pm_install/index.html | 28 + 12.x/commands/pm_list/index.html | 28 + 12.x/commands/pm_security/index.html | 28 + 12.x/commands/pm_uninstall/index.html | 28 + 12.x/commands/queue_delete/index.html | 28 + 12.x/commands/queue_list/index.html | 28 + 12.x/commands/queue_run/index.html | 28 + 12.x/commands/role_create/index.html | 28 + 12.x/commands/role_delete/index.html | 28 + 12.x/commands/role_list/index.html | 28 + 12.x/commands/role_perm_add/index.html | 28 + 12.x/commands/role_perm_remove/index.html | 28 + 12.x/commands/runserver/index.html | 28 + 12.x/commands/site_alias/index.html | 28 + 12.x/commands/site_install/index.html | 28 + 12.x/commands/site_set/index.html | 28 + 12.x/commands/site_ssh/index.html | 28 + 12.x/commands/sql_cli/index.html | 28 + 12.x/commands/sql_connect/index.html | 28 + 12.x/commands/sql_create/index.html | 28 + 12.x/commands/sql_drop/index.html | 28 + 12.x/commands/sql_dump/index.html | 28 + 12.x/commands/sql_query/index.html | 28 + 12.x/commands/sql_sanitize/index.html | 28 + 12.x/commands/sql_sync/index.html | 28 + 12.x/commands/state_delete/index.html | 28 + 12.x/commands/state_get/index.html | 28 + 12.x/commands/state_set/index.html | 28 + 12.x/commands/theme_install/index.html | 28 + 12.x/commands/theme_uninstall/index.html | 28 + 12.x/commands/twig_compile/index.html | 28 + 12.x/commands/twig_debug/index.html | 28 + 12.x/commands/twig_unused/index.html | 28 + 12.x/commands/updatedb/index.html | 28 + 12.x/commands/updatedb_status/index.html | 28 + 12.x/commands/user_block/index.html | 28 + 12.x/commands/user_cancel/index.html | 28 + 12.x/commands/user_create/index.html | 28 + 12.x/commands/user_information/index.html | 28 + 12.x/commands/user_login/index.html | 28 + 12.x/commands/user_password/index.html | 28 + 12.x/commands/user_role_add/index.html | 28 + 12.x/commands/user_role_remove/index.html | 28 + 12.x/commands/user_unblock/index.html | 28 + 12.x/commands/version/index.html | 28 + 12.x/commands/views_dev/index.html | 28 + 12.x/commands/views_disable/index.html | 28 + 12.x/commands/views_enable/index.html | 28 + 12.x/commands/views_execute/index.html | 28 + 12.x/commands/views_list/index.html | 28 + 12.x/commands/watchdog_delete/index.html | 28 + 12.x/commands/watchdog_list/index.html | 28 + 12.x/commands/watchdog_show-one/index.html | 28 + 12.x/commands/watchdog_show/index.html | 28 + 12.x/commands/watchdog_tail/index.html | 28 + 12.x/commands/yaml_get_value/index.html | 28 + 12.x/commands/yaml_lint/index.html | 28 + 12.x/commands/yaml_unset_key/index.html | 28 + 12.x/commands/yaml_update_key/index.html | 28 + 12.x/commands/yaml_update_value/index.html | 28 + 12.x/config-exporting/index.html | 28 + 12.x/contribute/CONTRIBUTING/index.html | 28 + 12.x/contribute/unish/index.html | 28 + 12.x/cron/index.html | 28 + 12.x/dependency-injection/index.html | 28 + 12.x/deploycommand/index.html | 28 + 12.x/examples/ArtCommands.php/index.html | 28 + 12.x/examples/PolicyCommands.php/index.html | 28 + .../SiteAliasAlterCommands.php/index.html | 28 + .../SyncViaHttpCommands.php/index.html | 28 + 12.x/examples/XkcdCommands.php/index.html | 28 + 12.x/examples/example.drush.yml/index.html | 28 + 12.x/examples/example.prompt.sh/index.html | 28 + 12.x/examples/example.site.yml/index.html | 28 + .../examples/git-bisect.example.sh/index.html | 28 + 12.x/examples/helloworld.script/index.html | 28 + 12.x/generators/all/index.html | 30 + 12.x/generators/composer/index.html | 28 + 12.x/generators/controller/index.html | 28 + 12.x/generators/drush_alias-file/index.html | 30 +- 12.x/generators/drush_command-file/index.html | 28 + 12.x/generators/drush_generator/index.html | 28 + .../drush_symfony-command/index.html | 28 + .../generators/entity_bundle-class/index.html | 28 + .../entity_configuration/index.html | 28 + 12.x/generators/entity_content/index.html | 28 + 12.x/generators/field/index.html | 28 + 12.x/generators/form_config/index.html | 28 + 12.x/generators/form_confirm/index.html | 28 + 12.x/generators/form_simple/index.html | 28 + 12.x/generators/hook/index.html | 28 + 12.x/generators/index.html | 28 + 12.x/generators/install-file/index.html | 28 + 12.x/generators/javascript/index.html | 28 + 12.x/generators/layout/index.html | 28 + .../misc_apache-virtual-host/index.html | 28 + .../misc_nginx-virtual-host/index.html | 28 + 12.x/generators/module/index.html | 28 + 12.x/generators/phpstorm-meta/index.html | 30 +- 12.x/generators/plugin_action/index.html | 28 + 12.x/generators/plugin_block/index.html | 28 + 12.x/generators/plugin_ckeditor/index.html | 28 + 12.x/generators/plugin_condition/index.html | 28 + 12.x/generators/plugin_constraint/index.html | 28 + .../index.html | 28 + .../plugin_field_formatter/index.html | 28 + 12.x/generators/plugin_field_type/index.html | 28 + .../generators/plugin_field_widget/index.html | 28 + 12.x/generators/plugin_filter/index.html | 28 + 12.x/generators/plugin_manager/index.html | 28 + 12.x/generators/plugin_menu-link/index.html | 28 + .../plugin_migrate_destination/index.html | 28 + .../plugin_migrate_process/index.html | 28 + .../plugin_migrate_source/index.html | 28 + .../generators/plugin_queue-worker/index.html | 28 + .../plugin_rest-resource/index.html | 28 + .../plugin_views_argument-default/index.html | 28 + 12.x/generators/plugin_views_field/index.html | 28 + 12.x/generators/plugin_views_style/index.html | 28 + 12.x/generators/readme/index.html | 5333 ++++++++++++++++ 12.x/generators/render-element/index.html | 30 +- 12.x/generators/sdc/index.html | 15 + 12.x/generators/service-provider/index.html | 30 +- .../service_access-checker/index.html | 28 + .../service_breadcrumb-builder/index.html | 28 + .../service_cache-context/index.html | 28 + 12.x/generators/service_custom/index.html | 28 + .../service_event-subscriber/index.html | 28 + 12.x/generators/service_logger/index.html | 28 + 12.x/generators/service_middleware/index.html | 28 + .../service_param-converter/index.html | 28 + .../service_path-processor/index.html | 28 + .../service_request-policy/index.html | 28 + .../service_response-policy/index.html | 28 + .../service_route-subscriber/index.html | 28 + .../service_theme-negotiator/index.html | 28 + .../service_twig-extension/index.html | 28 + .../service_uninstall-validator/index.html | 28 + .../single-directory-component/index.html | 5344 +++++++++++++++++ 12.x/generators/test_browser/index.html | 28 + 12.x/generators/test_kernel/index.html | 28 + 12.x/generators/test_nightwatch/index.html | 28 + 12.x/generators/test_unit/index.html | 28 + 12.x/generators/test_webdriver/index.html | 28 + 12.x/generators/theme/index.html | 28 + 12.x/generators/theme_settings/index.html | 28 + 12.x/generators/yml_breakpoints/index.html | 28 + 12.x/generators/yml_links_action/index.html | 28 + .../yml_links_contextual/index.html | 28 + 12.x/generators/yml_links_menu/index.html | 28 + 12.x/generators/yml_links_task/index.html | 28 + 12.x/generators/yml_migration/index.html | 28 + .../yml_module-libraries/index.html | 28 + 12.x/generators/yml_permissions/index.html | 28 + 12.x/generators/yml_routing/index.html | 28 + 12.x/generators/yml_services/index.html | 28 + .../generators/yml_theme-libraries/index.html | 28 + 12.x/hooks/index.html | 28 + 12.x/index.html | 28 + 12.x/install/index.html | 28 + 12.x/io/index.html | 28 + 12.x/migrate/index.html | 28 + 12.x/output-formats-filters/index.html | 28 + 12.x/repl/index.html | 28 + 12.x/search/search_index.json | 2 +- 12.x/site-alias-manager/index.html | 28 + 12.x/site-aliases/index.html | 28 + 12.x/sitemap.xml | 476 +- 12.x/sitemap.xml.gz | Bin 1849 -> 1865 bytes 12.x/usage/index.html | 28 + 12.x/using-drush-configuration/index.html | 28 + dev/generators/readme/index.html | 16 + dev/generators/sdc/index.html | 16 + .../single-directory-component/index.html | 16 + latest/generators/readme/index.html | 16 + latest/generators/sdc/index.html | 16 + .../single-directory-component/index.html | 16 + 246 files changed, 17590 insertions(+), 238 deletions(-) create mode 100644 12.x/generators/readme/index.html create mode 100644 12.x/generators/sdc/index.html create mode 100644 12.x/generators/single-directory-component/index.html create mode 100644 dev/generators/readme/index.html create mode 100644 dev/generators/sdc/index.html create mode 100644 dev/generators/single-directory-component/index.html create mode 100644 latest/generators/readme/index.html create mode 100644 latest/generators/sdc/index.html create mode 100644 latest/generators/single-directory-component/index.html diff --git a/12.x/404.html b/12.x/404.html index 25501a038a..18d2d34796 100644 --- a/12.x/404.html +++ b/12.x/404.html @@ -3858,6 +3858,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3881,6 +3895,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/bootstrap/index.html b/12.x/bootstrap/index.html index a173bbf29c..93e626752c 100644 --- a/12.x/bootstrap/index.html +++ b/12.x/bootstrap/index.html @@ -3960,6 +3960,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3983,6 +3997,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/all/index.html b/12.x/commands/all/index.html index 098bb7c891..931642bc76 100644 --- a/12.x/commands/all/index.html +++ b/12.x/commands/all/index.html @@ -3889,6 +3889,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3912,6 +3926,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/archive_dump/index.html b/12.x/commands/archive_dump/index.html index b47cf32cda..facbff10fa 100644 --- a/12.x/commands/archive_dump/index.html +++ b/12.x/commands/archive_dump/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/archive_restore/index.html b/12.x/commands/archive_restore/index.html index 993b8711d4..0a8c8bc9b6 100644 --- a/12.x/commands/archive_restore/index.html +++ b/12.x/commands/archive_restore/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/browse/index.html b/12.x/commands/browse/index.html index 7fb1b737f6..6f8b8d4d19 100644 --- a/12.x/commands/browse/index.html +++ b/12.x/commands/browse/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/cache_clear/index.html b/12.x/commands/cache_clear/index.html index 6f45ac268b..fe02cbc23b 100644 --- a/12.x/commands/cache_clear/index.html +++ b/12.x/commands/cache_clear/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/cache_get/index.html b/12.x/commands/cache_get/index.html index 1c96561538..419c9ae469 100644 --- a/12.x/commands/cache_get/index.html +++ b/12.x/commands/cache_get/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/cache_rebuild/index.html b/12.x/commands/cache_rebuild/index.html index 6590c6ca08..a7c1e168ab 100644 --- a/12.x/commands/cache_rebuild/index.html +++ b/12.x/commands/cache_rebuild/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/cache_set/index.html b/12.x/commands/cache_set/index.html index 4cfa6cff3f..671a423f0c 100644 --- a/12.x/commands/cache_set/index.html +++ b/12.x/commands/cache_set/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/cache_tags/index.html b/12.x/commands/cache_tags/index.html index 16d60b7764..41ddb0a5e2 100644 --- a/12.x/commands/cache_tags/index.html +++ b/12.x/commands/cache_tags/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/completion/index.html b/12.x/commands/completion/index.html index 1b1064ec2e..1f61b8003b 100644 --- a/12.x/commands/completion/index.html +++ b/12.x/commands/completion/index.html @@ -3954,6 +3954,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3977,6 +3991,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/config_delete/index.html b/12.x/commands/config_delete/index.html index f69826568e..c0dcb82f62 100644 --- a/12.x/commands/config_delete/index.html +++ b/12.x/commands/config_delete/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/config_edit/index.html b/12.x/commands/config_edit/index.html index c6c90fd3af..d9396092f3 100644 --- a/12.x/commands/config_edit/index.html +++ b/12.x/commands/config_edit/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/config_export/index.html b/12.x/commands/config_export/index.html index 9ac7391030..29a5cf75a3 100644 --- a/12.x/commands/config_export/index.html +++ b/12.x/commands/config_export/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/config_get/index.html b/12.x/commands/config_get/index.html index b6d480ecc2..7855e524c5 100644 --- a/12.x/commands/config_get/index.html +++ b/12.x/commands/config_get/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/config_import/index.html b/12.x/commands/config_import/index.html index 3fb449d9fd..2d45f61e57 100644 --- a/12.x/commands/config_import/index.html +++ b/12.x/commands/config_import/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/config_pull/index.html b/12.x/commands/config_pull/index.html index 0b38a6e842..598b75cacd 100644 --- a/12.x/commands/config_pull/index.html +++ b/12.x/commands/config_pull/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/config_set/index.html b/12.x/commands/config_set/index.html index 0e3a27e16c..1637cdae1f 100644 --- a/12.x/commands/config_set/index.html +++ b/12.x/commands/config_set/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/config_status/index.html b/12.x/commands/config_status/index.html index 4cb56c5d14..78828cac16 100644 --- a/12.x/commands/config_status/index.html +++ b/12.x/commands/config_status/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/core_cron/index.html b/12.x/commands/core_cron/index.html index e72eee1287..a25fd30e5e 100644 --- a/12.x/commands/core_cron/index.html +++ b/12.x/commands/core_cron/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/core_edit/index.html b/12.x/commands/core_edit/index.html index 324ecc2966..c64e3200a7 100644 --- a/12.x/commands/core_edit/index.html +++ b/12.x/commands/core_edit/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/core_requirements/index.html b/12.x/commands/core_requirements/index.html index 4f13c4bfb8..6a299cf917 100644 --- a/12.x/commands/core_requirements/index.html +++ b/12.x/commands/core_requirements/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/core_route/index.html b/12.x/commands/core_route/index.html index cd775e63eb..89defb2ab9 100644 --- a/12.x/commands/core_route/index.html +++ b/12.x/commands/core_route/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/core_rsync/index.html b/12.x/commands/core_rsync/index.html index a08dd628ce..b239eb8026 100644 --- a/12.x/commands/core_rsync/index.html +++ b/12.x/commands/core_rsync/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/core_status/index.html b/12.x/commands/core_status/index.html index 98ac5228de..555222e57b 100644 --- a/12.x/commands/core_status/index.html +++ b/12.x/commands/core_status/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/core_topic/index.html b/12.x/commands/core_topic/index.html index 632743976b..e3b8747222 100644 --- a/12.x/commands/core_topic/index.html +++ b/12.x/commands/core_topic/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/deploy/index.html b/12.x/commands/deploy/index.html index 32c44f5024..c2ebeed40b 100644 --- a/12.x/commands/deploy/index.html +++ b/12.x/commands/deploy/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/deploy_hook-status/index.html b/12.x/commands/deploy_hook-status/index.html index ee727023c9..2e6646a670 100644 --- a/12.x/commands/deploy_hook-status/index.html +++ b/12.x/commands/deploy_hook-status/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/deploy_hook/index.html b/12.x/commands/deploy_hook/index.html index 43a217a547..4129eb0d87 100644 --- a/12.x/commands/deploy_hook/index.html +++ b/12.x/commands/deploy_hook/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/deploy_mark-complete/index.html b/12.x/commands/deploy_mark-complete/index.html index a5704a4447..cc810c33d8 100644 --- a/12.x/commands/deploy_mark-complete/index.html +++ b/12.x/commands/deploy_mark-complete/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/drupal_directory/index.html b/12.x/commands/drupal_directory/index.html index 071e359525..5945c73149 100644 --- a/12.x/commands/drupal_directory/index.html +++ b/12.x/commands/drupal_directory/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/entity_delete/index.html b/12.x/commands/entity_delete/index.html index 69e4d72166..256b0ed7df 100644 --- a/12.x/commands/entity_delete/index.html +++ b/12.x/commands/entity_delete/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/entity_save/index.html b/12.x/commands/entity_save/index.html index a36c0dce0f..7000d09e7a 100644 --- a/12.x/commands/entity_save/index.html +++ b/12.x/commands/entity_save/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/field_base-info/index.html b/12.x/commands/field_base-info/index.html index 17fa7ea864..a019e0bf63 100644 --- a/12.x/commands/field_base-info/index.html +++ b/12.x/commands/field_base-info/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/field_base-override-create/index.html b/12.x/commands/field_base-override-create/index.html index 2f06c55f91..1646d6ae7d 100644 --- a/12.x/commands/field_base-override-create/index.html +++ b/12.x/commands/field_base-override-create/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/field_create/index.html b/12.x/commands/field_create/index.html index 71ead9f169..decf1df9d7 100644 --- a/12.x/commands/field_create/index.html +++ b/12.x/commands/field_create/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/field_delete/index.html b/12.x/commands/field_delete/index.html index 308a3c3ab3..ec360867d9 100644 --- a/12.x/commands/field_delete/index.html +++ b/12.x/commands/field_delete/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/field_formatters/index.html b/12.x/commands/field_formatters/index.html index a4a57b7b54..a38f2fff1e 100644 --- a/12.x/commands/field_formatters/index.html +++ b/12.x/commands/field_formatters/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/field_info/index.html b/12.x/commands/field_info/index.html index 29c83d5359..884b7b90a0 100644 --- a/12.x/commands/field_info/index.html +++ b/12.x/commands/field_info/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/field_types/index.html b/12.x/commands/field_types/index.html index dfbf8c661e..2ad6259b5b 100644 --- a/12.x/commands/field_types/index.html +++ b/12.x/commands/field_types/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/field_widgets/index.html b/12.x/commands/field_widgets/index.html index 2d4bed2e13..bb88978985 100644 --- a/12.x/commands/field_widgets/index.html +++ b/12.x/commands/field_widgets/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/generate/index.html b/12.x/commands/generate/index.html index 0354c06064..d514dfa872 100644 --- a/12.x/commands/generate/index.html +++ b/12.x/commands/generate/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/help/index.html b/12.x/commands/help/index.html index 0f18346e95..f7011d3d2e 100644 --- a/12.x/commands/help/index.html +++ b/12.x/commands/help/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/image_derive/index.html b/12.x/commands/image_derive/index.html index 6c9f0d6e11..822fd63483 100644 --- a/12.x/commands/image_derive/index.html +++ b/12.x/commands/image_derive/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/image_flush/index.html b/12.x/commands/image_flush/index.html index 0a2ed2c683..81a618379c 100644 --- a/12.x/commands/image_flush/index.html +++ b/12.x/commands/image_flush/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/index.html b/12.x/commands/index.html index 39eb8777e3..11150ae2f6 100644 --- a/12.x/commands/index.html +++ b/12.x/commands/index.html @@ -3953,6 +3953,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3976,6 +3990,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/jn_get/index.html b/12.x/commands/jn_get/index.html index 1a12c20dd1..c0cb3438bb 100644 --- a/12.x/commands/jn_get/index.html +++ b/12.x/commands/jn_get/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/list/index.html b/12.x/commands/list/index.html index 17c0da7123..0f88718a3c 100644 --- a/12.x/commands/list/index.html +++ b/12.x/commands/list/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/locale_check/index.html b/12.x/commands/locale_check/index.html index aa8b19f0b4..6d444c4c79 100644 --- a/12.x/commands/locale_check/index.html +++ b/12.x/commands/locale_check/index.html @@ -3927,6 +3927,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3950,6 +3964,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/locale_clear-status/index.html b/12.x/commands/locale_clear-status/index.html index 8ce8f1617c..cca3f0e8ad 100644 --- a/12.x/commands/locale_clear-status/index.html +++ b/12.x/commands/locale_clear-status/index.html @@ -3927,6 +3927,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3950,6 +3964,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/locale_export/index.html b/12.x/commands/locale_export/index.html index f1b426bb08..03a7e95d08 100644 --- a/12.x/commands/locale_export/index.html +++ b/12.x/commands/locale_export/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/locale_import-all/index.html b/12.x/commands/locale_import-all/index.html index 94171677b1..d081dae53d 100644 --- a/12.x/commands/locale_import-all/index.html +++ b/12.x/commands/locale_import-all/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/locale_import/index.html b/12.x/commands/locale_import/index.html index cf29604dd2..3897fad88e 100644 --- a/12.x/commands/locale_import/index.html +++ b/12.x/commands/locale_import/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/locale_update/index.html b/12.x/commands/locale_update/index.html index afb0dd46ce..184960be55 100644 --- a/12.x/commands/locale_update/index.html +++ b/12.x/commands/locale_update/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/maint_get/index.html b/12.x/commands/maint_get/index.html index a5ef72a0fe..c82c2855a1 100644 --- a/12.x/commands/maint_get/index.html +++ b/12.x/commands/maint_get/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/maint_set/index.html b/12.x/commands/maint_set/index.html index 1b4c3d1e90..709ee67307 100644 --- a/12.x/commands/maint_set/index.html +++ b/12.x/commands/maint_set/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/maint_status/index.html b/12.x/commands/maint_status/index.html index 87c81bb639..44fdaed560 100644 --- a/12.x/commands/maint_status/index.html +++ b/12.x/commands/maint_status/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/migrate_fields-source/index.html b/12.x/commands/migrate_fields-source/index.html index 353e9f1e2b..d249d9eafd 100644 --- a/12.x/commands/migrate_fields-source/index.html +++ b/12.x/commands/migrate_fields-source/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/migrate_import/index.html b/12.x/commands/migrate_import/index.html index 14ab26b36a..f9fb7d1a7f 100644 --- a/12.x/commands/migrate_import/index.html +++ b/12.x/commands/migrate_import/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/migrate_messages/index.html b/12.x/commands/migrate_messages/index.html index c76c1eff3b..b802995c70 100644 --- a/12.x/commands/migrate_messages/index.html +++ b/12.x/commands/migrate_messages/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/migrate_reset-status/index.html b/12.x/commands/migrate_reset-status/index.html index 93a576553c..8a67e1faac 100644 --- a/12.x/commands/migrate_reset-status/index.html +++ b/12.x/commands/migrate_reset-status/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/migrate_rollback/index.html b/12.x/commands/migrate_rollback/index.html index cc13b2efc7..a5b2451efb 100644 --- a/12.x/commands/migrate_rollback/index.html +++ b/12.x/commands/migrate_rollback/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/migrate_status/index.html b/12.x/commands/migrate_status/index.html index 84ae114c38..3ecceee1c7 100644 --- a/12.x/commands/migrate_status/index.html +++ b/12.x/commands/migrate_status/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/migrate_stop/index.html b/12.x/commands/migrate_stop/index.html index 2cebc59b35..cac0e6a0cc 100644 --- a/12.x/commands/migrate_stop/index.html +++ b/12.x/commands/migrate_stop/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/mk_docs/index.html b/12.x/commands/mk_docs/index.html index 84255af714..6da8f0b767 100644 --- a/12.x/commands/mk_docs/index.html +++ b/12.x/commands/mk_docs/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/php_cli/index.html b/12.x/commands/php_cli/index.html index 97f0d9092b..498253f55e 100644 --- a/12.x/commands/php_cli/index.html +++ b/12.x/commands/php_cli/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/php_eval/index.html b/12.x/commands/php_eval/index.html index 55e1617d6e..3c5ca9c39b 100644 --- a/12.x/commands/php_eval/index.html +++ b/12.x/commands/php_eval/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/php_script/index.html b/12.x/commands/php_script/index.html index 17a06ee6ef..2b1e404a8e 100644 --- a/12.x/commands/php_script/index.html +++ b/12.x/commands/php_script/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/pm_install/index.html b/12.x/commands/pm_install/index.html index 1282134927..eb9d5666f4 100644 --- a/12.x/commands/pm_install/index.html +++ b/12.x/commands/pm_install/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/pm_list/index.html b/12.x/commands/pm_list/index.html index 5ec48087df..91a75a2880 100644 --- a/12.x/commands/pm_list/index.html +++ b/12.x/commands/pm_list/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/pm_security/index.html b/12.x/commands/pm_security/index.html index 5ecf89c5ae..a20d026611 100644 --- a/12.x/commands/pm_security/index.html +++ b/12.x/commands/pm_security/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/pm_uninstall/index.html b/12.x/commands/pm_uninstall/index.html index eccaa000bf..aa5369bc98 100644 --- a/12.x/commands/pm_uninstall/index.html +++ b/12.x/commands/pm_uninstall/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/queue_delete/index.html b/12.x/commands/queue_delete/index.html index d7430f6fcb..fdc14b434e 100644 --- a/12.x/commands/queue_delete/index.html +++ b/12.x/commands/queue_delete/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/queue_list/index.html b/12.x/commands/queue_list/index.html index cf4361e09e..f7f5997d7d 100644 --- a/12.x/commands/queue_list/index.html +++ b/12.x/commands/queue_list/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/queue_run/index.html b/12.x/commands/queue_run/index.html index 348e65193b..06bdf0182b 100644 --- a/12.x/commands/queue_run/index.html +++ b/12.x/commands/queue_run/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/role_create/index.html b/12.x/commands/role_create/index.html index 51a31addfa..d53644fc4f 100644 --- a/12.x/commands/role_create/index.html +++ b/12.x/commands/role_create/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/role_delete/index.html b/12.x/commands/role_delete/index.html index 240f407363..88d20e785f 100644 --- a/12.x/commands/role_delete/index.html +++ b/12.x/commands/role_delete/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/role_list/index.html b/12.x/commands/role_list/index.html index 9b45bca298..53f4b976c7 100644 --- a/12.x/commands/role_list/index.html +++ b/12.x/commands/role_list/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/role_perm_add/index.html b/12.x/commands/role_perm_add/index.html index 594aca0f56..28365bd616 100644 --- a/12.x/commands/role_perm_add/index.html +++ b/12.x/commands/role_perm_add/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/role_perm_remove/index.html b/12.x/commands/role_perm_remove/index.html index 31db5bc6bb..dd09b23911 100644 --- a/12.x/commands/role_perm_remove/index.html +++ b/12.x/commands/role_perm_remove/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/runserver/index.html b/12.x/commands/runserver/index.html index e74ed40fc1..1c51a4acc5 100644 --- a/12.x/commands/runserver/index.html +++ b/12.x/commands/runserver/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/site_alias/index.html b/12.x/commands/site_alias/index.html index 27158afee1..4dff78a168 100644 --- a/12.x/commands/site_alias/index.html +++ b/12.x/commands/site_alias/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/site_install/index.html b/12.x/commands/site_install/index.html index aa26ef535f..30533ed3d9 100644 --- a/12.x/commands/site_install/index.html +++ b/12.x/commands/site_install/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/site_set/index.html b/12.x/commands/site_set/index.html index 62c2a5a3f9..a3df9e3a10 100644 --- a/12.x/commands/site_set/index.html +++ b/12.x/commands/site_set/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/site_ssh/index.html b/12.x/commands/site_ssh/index.html index 8b3851858b..b30f8eb3df 100644 --- a/12.x/commands/site_ssh/index.html +++ b/12.x/commands/site_ssh/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/sql_cli/index.html b/12.x/commands/sql_cli/index.html index d0ee82fa4f..b667f3759a 100644 --- a/12.x/commands/sql_cli/index.html +++ b/12.x/commands/sql_cli/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/sql_connect/index.html b/12.x/commands/sql_connect/index.html index 70b315bc5d..3981ce5fcd 100644 --- a/12.x/commands/sql_connect/index.html +++ b/12.x/commands/sql_connect/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/sql_create/index.html b/12.x/commands/sql_create/index.html index ea0b0b57c5..b2d3275dcb 100644 --- a/12.x/commands/sql_create/index.html +++ b/12.x/commands/sql_create/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/sql_drop/index.html b/12.x/commands/sql_drop/index.html index 7bf5ebc055..47c0e6d0d5 100644 --- a/12.x/commands/sql_drop/index.html +++ b/12.x/commands/sql_drop/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/sql_dump/index.html b/12.x/commands/sql_dump/index.html index 97feef2dc8..21ebe618ff 100644 --- a/12.x/commands/sql_dump/index.html +++ b/12.x/commands/sql_dump/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/sql_query/index.html b/12.x/commands/sql_query/index.html index e4784946f4..5c0c9d19ea 100644 --- a/12.x/commands/sql_query/index.html +++ b/12.x/commands/sql_query/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/sql_sanitize/index.html b/12.x/commands/sql_sanitize/index.html index badfbe0447..30d9efb998 100644 --- a/12.x/commands/sql_sanitize/index.html +++ b/12.x/commands/sql_sanitize/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/sql_sync/index.html b/12.x/commands/sql_sync/index.html index b15105ec2d..dea457d5cf 100644 --- a/12.x/commands/sql_sync/index.html +++ b/12.x/commands/sql_sync/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/state_delete/index.html b/12.x/commands/state_delete/index.html index fb45a1d92f..2e4e54b5ce 100644 --- a/12.x/commands/state_delete/index.html +++ b/12.x/commands/state_delete/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/state_get/index.html b/12.x/commands/state_get/index.html index a12ed7bf3e..7684de66dd 100644 --- a/12.x/commands/state_get/index.html +++ b/12.x/commands/state_get/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/state_set/index.html b/12.x/commands/state_set/index.html index ca1877d18b..f9e06b2bb6 100644 --- a/12.x/commands/state_set/index.html +++ b/12.x/commands/state_set/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/theme_install/index.html b/12.x/commands/theme_install/index.html index 02ea9a840b..f589715f27 100644 --- a/12.x/commands/theme_install/index.html +++ b/12.x/commands/theme_install/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/theme_uninstall/index.html b/12.x/commands/theme_uninstall/index.html index 485c5713d4..4f0edb2b51 100644 --- a/12.x/commands/theme_uninstall/index.html +++ b/12.x/commands/theme_uninstall/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/twig_compile/index.html b/12.x/commands/twig_compile/index.html index dbc7415807..51be448e34 100644 --- a/12.x/commands/twig_compile/index.html +++ b/12.x/commands/twig_compile/index.html @@ -3927,6 +3927,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3950,6 +3964,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/twig_debug/index.html b/12.x/commands/twig_debug/index.html index 203191109b..2901922dab 100644 --- a/12.x/commands/twig_debug/index.html +++ b/12.x/commands/twig_debug/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/twig_unused/index.html b/12.x/commands/twig_unused/index.html index 6e95f9f3c0..8caa7c8f61 100644 --- a/12.x/commands/twig_unused/index.html +++ b/12.x/commands/twig_unused/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/updatedb/index.html b/12.x/commands/updatedb/index.html index 144ce396ff..7e2d4a5d01 100644 --- a/12.x/commands/updatedb/index.html +++ b/12.x/commands/updatedb/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/updatedb_status/index.html b/12.x/commands/updatedb_status/index.html index 0f002421bd..4846ca972a 100644 --- a/12.x/commands/updatedb_status/index.html +++ b/12.x/commands/updatedb_status/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/user_block/index.html b/12.x/commands/user_block/index.html index 420f5df699..35c15565f2 100644 --- a/12.x/commands/user_block/index.html +++ b/12.x/commands/user_block/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/user_cancel/index.html b/12.x/commands/user_cancel/index.html index d36eb5d368..e474cccb73 100644 --- a/12.x/commands/user_cancel/index.html +++ b/12.x/commands/user_cancel/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/user_create/index.html b/12.x/commands/user_create/index.html index 521901a878..04f8d9e3c0 100644 --- a/12.x/commands/user_create/index.html +++ b/12.x/commands/user_create/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/user_information/index.html b/12.x/commands/user_information/index.html index d35bc3281d..16696885b6 100644 --- a/12.x/commands/user_information/index.html +++ b/12.x/commands/user_information/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/user_login/index.html b/12.x/commands/user_login/index.html index 53871911a5..cd5452883f 100644 --- a/12.x/commands/user_login/index.html +++ b/12.x/commands/user_login/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/user_password/index.html b/12.x/commands/user_password/index.html index 6c666f2c9e..2b934cb397 100644 --- a/12.x/commands/user_password/index.html +++ b/12.x/commands/user_password/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/user_role_add/index.html b/12.x/commands/user_role_add/index.html index aa0426a8d5..d655d8168b 100644 --- a/12.x/commands/user_role_add/index.html +++ b/12.x/commands/user_role_add/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/user_role_remove/index.html b/12.x/commands/user_role_remove/index.html index 9708f90047..c9d0365329 100644 --- a/12.x/commands/user_role_remove/index.html +++ b/12.x/commands/user_role_remove/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/user_unblock/index.html b/12.x/commands/user_unblock/index.html index 344f13f81f..2bf787062a 100644 --- a/12.x/commands/user_unblock/index.html +++ b/12.x/commands/user_unblock/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/version/index.html b/12.x/commands/version/index.html index f12ac51154..5179e37168 100644 --- a/12.x/commands/version/index.html +++ b/12.x/commands/version/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/views_dev/index.html b/12.x/commands/views_dev/index.html index b12257304f..1a30cec9f5 100644 --- a/12.x/commands/views_dev/index.html +++ b/12.x/commands/views_dev/index.html @@ -3927,6 +3927,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3950,6 +3964,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/views_disable/index.html b/12.x/commands/views_disable/index.html index 2b33e922fd..147803483e 100644 --- a/12.x/commands/views_disable/index.html +++ b/12.x/commands/views_disable/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/views_enable/index.html b/12.x/commands/views_enable/index.html index ff70cf3e49..a56999019c 100644 --- a/12.x/commands/views_enable/index.html +++ b/12.x/commands/views_enable/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/views_execute/index.html b/12.x/commands/views_execute/index.html index d21f8a4180..33ffb4c6de 100644 --- a/12.x/commands/views_execute/index.html +++ b/12.x/commands/views_execute/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/views_list/index.html b/12.x/commands/views_list/index.html index a3b04cdaa2..451ad82793 100644 --- a/12.x/commands/views_list/index.html +++ b/12.x/commands/views_list/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/watchdog_delete/index.html b/12.x/commands/watchdog_delete/index.html index e37699fe19..293659b970 100644 --- a/12.x/commands/watchdog_delete/index.html +++ b/12.x/commands/watchdog_delete/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/watchdog_list/index.html b/12.x/commands/watchdog_list/index.html index a0e8b8eec8..1c475f4902 100644 --- a/12.x/commands/watchdog_list/index.html +++ b/12.x/commands/watchdog_list/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/watchdog_show-one/index.html b/12.x/commands/watchdog_show-one/index.html index efb7f74a33..c3212ab062 100644 --- a/12.x/commands/watchdog_show-one/index.html +++ b/12.x/commands/watchdog_show-one/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/watchdog_show/index.html b/12.x/commands/watchdog_show/index.html index 7d5658fd37..aebe601dab 100644 --- a/12.x/commands/watchdog_show/index.html +++ b/12.x/commands/watchdog_show/index.html @@ -3955,6 +3955,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3978,6 +3992,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/watchdog_tail/index.html b/12.x/commands/watchdog_tail/index.html index c3d6c896f6..901fa82b33 100644 --- a/12.x/commands/watchdog_tail/index.html +++ b/12.x/commands/watchdog_tail/index.html @@ -3948,6 +3948,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3971,6 +3985,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/yaml_get_value/index.html b/12.x/commands/yaml_get_value/index.html index e93b4e32f0..d16e594da6 100644 --- a/12.x/commands/yaml_get_value/index.html +++ b/12.x/commands/yaml_get_value/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/yaml_lint/index.html b/12.x/commands/yaml_lint/index.html index 52b9a60b92..020fc6b06d 100644 --- a/12.x/commands/yaml_lint/index.html +++ b/12.x/commands/yaml_lint/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/yaml_unset_key/index.html b/12.x/commands/yaml_unset_key/index.html index 167394166a..406efbf91f 100644 --- a/12.x/commands/yaml_unset_key/index.html +++ b/12.x/commands/yaml_unset_key/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/yaml_update_key/index.html b/12.x/commands/yaml_update_key/index.html index 4ced94a103..603148b11e 100644 --- a/12.x/commands/yaml_update_key/index.html +++ b/12.x/commands/yaml_update_key/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/commands/yaml_update_value/index.html b/12.x/commands/yaml_update_value/index.html index 5b97ffd0f2..c433612c0a 100644 --- a/12.x/commands/yaml_update_value/index.html +++ b/12.x/commands/yaml_update_value/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/config-exporting/index.html b/12.x/config-exporting/index.html index adf9ca9878..243fdc2806 100644 --- a/12.x/config-exporting/index.html +++ b/12.x/config-exporting/index.html @@ -3925,6 +3925,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3948,6 +3962,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/contribute/CONTRIBUTING/index.html b/12.x/contribute/CONTRIBUTING/index.html index 5c30fffa59..28291e2808 100644 --- a/12.x/contribute/CONTRIBUTING/index.html +++ b/12.x/contribute/CONTRIBUTING/index.html @@ -3935,6 +3935,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3958,6 +3972,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/contribute/unish/index.html b/12.x/contribute/unish/index.html index 06f1a62dbc..b7aa182f27 100644 --- a/12.x/contribute/unish/index.html +++ b/12.x/contribute/unish/index.html @@ -3942,6 +3942,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3965,6 +3979,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/cron/index.html b/12.x/cron/index.html index 86737e58fa..464c975413 100644 --- a/12.x/cron/index.html +++ b/12.x/cron/index.html @@ -3960,6 +3960,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3983,6 +3997,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/dependency-injection/index.html b/12.x/dependency-injection/index.html index 4d78db1b7e..01f5875ac0 100644 --- a/12.x/dependency-injection/index.html +++ b/12.x/dependency-injection/index.html @@ -3939,6 +3939,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3962,6 +3976,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/deploycommand/index.html b/12.x/deploycommand/index.html index c750c97b30..201d88fd98 100644 --- a/12.x/deploycommand/index.html +++ b/12.x/deploycommand/index.html @@ -3925,6 +3925,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3948,6 +3962,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/examples/ArtCommands.php/index.html b/12.x/examples/ArtCommands.php/index.html index 445f23c0d6..0f100d55f5 100644 --- a/12.x/examples/ArtCommands.php/index.html +++ b/12.x/examples/ArtCommands.php/index.html @@ -3880,6 +3880,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3903,6 +3917,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/examples/PolicyCommands.php/index.html b/12.x/examples/PolicyCommands.php/index.html index 88b2a209ff..a4d58a81f1 100644 --- a/12.x/examples/PolicyCommands.php/index.html +++ b/12.x/examples/PolicyCommands.php/index.html @@ -3880,6 +3880,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3903,6 +3917,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/examples/SiteAliasAlterCommands.php/index.html b/12.x/examples/SiteAliasAlterCommands.php/index.html index ee9a7e4b01..63954c545d 100644 --- a/12.x/examples/SiteAliasAlterCommands.php/index.html +++ b/12.x/examples/SiteAliasAlterCommands.php/index.html @@ -3880,6 +3880,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3903,6 +3917,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/examples/SyncViaHttpCommands.php/index.html b/12.x/examples/SyncViaHttpCommands.php/index.html index 5f19eab06f..397520a4c2 100644 --- a/12.x/examples/SyncViaHttpCommands.php/index.html +++ b/12.x/examples/SyncViaHttpCommands.php/index.html @@ -3880,6 +3880,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3903,6 +3917,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/examples/XkcdCommands.php/index.html b/12.x/examples/XkcdCommands.php/index.html index 0c03b9541b..927006a428 100644 --- a/12.x/examples/XkcdCommands.php/index.html +++ b/12.x/examples/XkcdCommands.php/index.html @@ -3880,6 +3880,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3903,6 +3917,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/examples/example.drush.yml/index.html b/12.x/examples/example.drush.yml/index.html index b627ced184..167d7711ae 100644 --- a/12.x/examples/example.drush.yml/index.html +++ b/12.x/examples/example.drush.yml/index.html @@ -3880,6 +3880,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3903,6 +3917,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/examples/example.prompt.sh/index.html b/12.x/examples/example.prompt.sh/index.html index 3c7f8c907e..a9b4edd75d 100644 --- a/12.x/examples/example.prompt.sh/index.html +++ b/12.x/examples/example.prompt.sh/index.html @@ -3880,6 +3880,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3903,6 +3917,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/examples/example.site.yml/index.html b/12.x/examples/example.site.yml/index.html index d5ebed1f94..77cd68d395 100644 --- a/12.x/examples/example.site.yml/index.html +++ b/12.x/examples/example.site.yml/index.html @@ -3880,6 +3880,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3903,6 +3917,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/examples/git-bisect.example.sh/index.html b/12.x/examples/git-bisect.example.sh/index.html index fbada0d415..a014d5bac9 100644 --- a/12.x/examples/git-bisect.example.sh/index.html +++ b/12.x/examples/git-bisect.example.sh/index.html @@ -3880,6 +3880,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3903,6 +3917,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/examples/helloworld.script/index.html b/12.x/examples/helloworld.script/index.html index 7cb3f7d56a..97479d4635 100644 --- a/12.x/examples/helloworld.script/index.html +++ b/12.x/examples/helloworld.script/index.html @@ -3880,6 +3880,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3903,6 +3917,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/all/index.html b/12.x/generators/all/index.html index 3024fbb1d8..fa98597bc1 100644 --- a/12.x/generators/all/index.html +++ b/12.x/generators/all/index.html @@ -3889,6 +3889,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3912,6 +3926,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + @@ -5188,8 +5216,10 @@

    All generatorslayout
  • module
  • phpstorm-meta
  • +
  • readme
  • render-element
  • service-provider
  • +
  • single-directory-component
  • drush:alias-file
  • drush:command-file
  • drush:generator
  • diff --git a/12.x/generators/composer/index.html b/12.x/generators/composer/index.html index d1b90284a1..2fb5991551 100644 --- a/12.x/generators/composer/index.html +++ b/12.x/generators/composer/index.html @@ -3941,6 +3941,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3964,6 +3978,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/controller/index.html b/12.x/generators/controller/index.html index 767e4762a2..2d5e6f9fda 100644 --- a/12.x/generators/controller/index.html +++ b/12.x/generators/controller/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/drush_alias-file/index.html b/12.x/generators/drush_alias-file/index.html index f858af9dbb..3a564801ee 100644 --- a/12.x/generators/drush_alias-file/index.html +++ b/12.x/generators/drush_alias-file/index.html @@ -15,7 +15,7 @@ - + @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/drush_command-file/index.html b/12.x/generators/drush_command-file/index.html index b5d62e825c..5b30e9a2de 100644 --- a/12.x/generators/drush_command-file/index.html +++ b/12.x/generators/drush_command-file/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/drush_generator/index.html b/12.x/generators/drush_generator/index.html index 4c3beb2f1d..459b2807f8 100644 --- a/12.x/generators/drush_generator/index.html +++ b/12.x/generators/drush_generator/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/drush_symfony-command/index.html b/12.x/generators/drush_symfony-command/index.html index 20a1b12fd7..10c82bfa2c 100644 --- a/12.x/generators/drush_symfony-command/index.html +++ b/12.x/generators/drush_symfony-command/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/entity_bundle-class/index.html b/12.x/generators/entity_bundle-class/index.html index 865718f03b..1ba67ce9f3 100644 --- a/12.x/generators/entity_bundle-class/index.html +++ b/12.x/generators/entity_bundle-class/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/entity_configuration/index.html b/12.x/generators/entity_configuration/index.html index a73dfeb98a..2aaa891c0e 100644 --- a/12.x/generators/entity_configuration/index.html +++ b/12.x/generators/entity_configuration/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/entity_content/index.html b/12.x/generators/entity_content/index.html index cd1beed9dc..e11f2bc2b0 100644 --- a/12.x/generators/entity_content/index.html +++ b/12.x/generators/entity_content/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/field/index.html b/12.x/generators/field/index.html index f957b2d1fb..e60faffcd8 100644 --- a/12.x/generators/field/index.html +++ b/12.x/generators/field/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/form_config/index.html b/12.x/generators/form_config/index.html index 6f14f9c1c9..b80c6a80c6 100644 --- a/12.x/generators/form_config/index.html +++ b/12.x/generators/form_config/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/form_confirm/index.html b/12.x/generators/form_confirm/index.html index 294739cd3e..d58e7158ea 100644 --- a/12.x/generators/form_confirm/index.html +++ b/12.x/generators/form_confirm/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/form_simple/index.html b/12.x/generators/form_simple/index.html index 3c62255540..8ad7828d86 100644 --- a/12.x/generators/form_simple/index.html +++ b/12.x/generators/form_simple/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/hook/index.html b/12.x/generators/hook/index.html index 077b79d40a..198ec39e3c 100644 --- a/12.x/generators/hook/index.html +++ b/12.x/generators/hook/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/index.html b/12.x/generators/index.html index a0d2af6516..a57087274d 100644 --- a/12.x/generators/index.html +++ b/12.x/generators/index.html @@ -3932,6 +3932,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3955,6 +3969,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/install-file/index.html b/12.x/generators/install-file/index.html index 9c9256320b..19285a17e7 100644 --- a/12.x/generators/install-file/index.html +++ b/12.x/generators/install-file/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/javascript/index.html b/12.x/generators/javascript/index.html index 2933468c3d..7e5b30724b 100644 --- a/12.x/generators/javascript/index.html +++ b/12.x/generators/javascript/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/layout/index.html b/12.x/generators/layout/index.html index ce1c229d3f..9fdc66c139 100644 --- a/12.x/generators/layout/index.html +++ b/12.x/generators/layout/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/misc_apache-virtual-host/index.html b/12.x/generators/misc_apache-virtual-host/index.html index 3f769b17c7..2c6f8c7867 100644 --- a/12.x/generators/misc_apache-virtual-host/index.html +++ b/12.x/generators/misc_apache-virtual-host/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/misc_nginx-virtual-host/index.html b/12.x/generators/misc_nginx-virtual-host/index.html index 0f0603a515..f11872f9d4 100644 --- a/12.x/generators/misc_nginx-virtual-host/index.html +++ b/12.x/generators/misc_nginx-virtual-host/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/module/index.html b/12.x/generators/module/index.html index bf6c7864c2..782d5da13f 100644 --- a/12.x/generators/module/index.html +++ b/12.x/generators/module/index.html @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/phpstorm-meta/index.html b/12.x/generators/phpstorm-meta/index.html index b7d1f3b101..d16c56afbb 100644 --- a/12.x/generators/phpstorm-meta/index.html +++ b/12.x/generators/phpstorm-meta/index.html @@ -18,7 +18,7 @@ - + @@ -3934,6 +3934,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_action/index.html b/12.x/generators/plugin_action/index.html index 4baa14727c..e8d6430b26 100644 --- a/12.x/generators/plugin_action/index.html +++ b/12.x/generators/plugin_action/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_block/index.html b/12.x/generators/plugin_block/index.html index 11548467ff..cd4e0a3945 100644 --- a/12.x/generators/plugin_block/index.html +++ b/12.x/generators/plugin_block/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_ckeditor/index.html b/12.x/generators/plugin_ckeditor/index.html index 0235b2a9cc..50a5a90168 100644 --- a/12.x/generators/plugin_ckeditor/index.html +++ b/12.x/generators/plugin_ckeditor/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_condition/index.html b/12.x/generators/plugin_condition/index.html index ba09899426..02c68cb20e 100644 --- a/12.x/generators/plugin_condition/index.html +++ b/12.x/generators/plugin_condition/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_constraint/index.html b/12.x/generators/plugin_constraint/index.html index be48911f9d..eac87fa1e7 100644 --- a/12.x/generators/plugin_constraint/index.html +++ b/12.x/generators/plugin_constraint/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_entity-reference-selection/index.html b/12.x/generators/plugin_entity-reference-selection/index.html index 7b6e181271..42f07fad47 100644 --- a/12.x/generators/plugin_entity-reference-selection/index.html +++ b/12.x/generators/plugin_entity-reference-selection/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_field_formatter/index.html b/12.x/generators/plugin_field_formatter/index.html index 51d5f69592..39a9470d8e 100644 --- a/12.x/generators/plugin_field_formatter/index.html +++ b/12.x/generators/plugin_field_formatter/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_field_type/index.html b/12.x/generators/plugin_field_type/index.html index c7d3cdf9a1..7a6382c1c7 100644 --- a/12.x/generators/plugin_field_type/index.html +++ b/12.x/generators/plugin_field_type/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_field_widget/index.html b/12.x/generators/plugin_field_widget/index.html index 66b9f36e37..f5c4af3ea6 100644 --- a/12.x/generators/plugin_field_widget/index.html +++ b/12.x/generators/plugin_field_widget/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_filter/index.html b/12.x/generators/plugin_filter/index.html index 70096061f6..111c45ae0b 100644 --- a/12.x/generators/plugin_filter/index.html +++ b/12.x/generators/plugin_filter/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_manager/index.html b/12.x/generators/plugin_manager/index.html index 4eddb21318..9b0d032e40 100644 --- a/12.x/generators/plugin_manager/index.html +++ b/12.x/generators/plugin_manager/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_menu-link/index.html b/12.x/generators/plugin_menu-link/index.html index b244567801..f47b2a3d6d 100644 --- a/12.x/generators/plugin_menu-link/index.html +++ b/12.x/generators/plugin_menu-link/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_migrate_destination/index.html b/12.x/generators/plugin_migrate_destination/index.html index 0bc1b99084..8c0358b752 100644 --- a/12.x/generators/plugin_migrate_destination/index.html +++ b/12.x/generators/plugin_migrate_destination/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_migrate_process/index.html b/12.x/generators/plugin_migrate_process/index.html index 679ea15749..094cf85785 100644 --- a/12.x/generators/plugin_migrate_process/index.html +++ b/12.x/generators/plugin_migrate_process/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_migrate_source/index.html b/12.x/generators/plugin_migrate_source/index.html index bd8c7a9861..eab0f66c21 100644 --- a/12.x/generators/plugin_migrate_source/index.html +++ b/12.x/generators/plugin_migrate_source/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_queue-worker/index.html b/12.x/generators/plugin_queue-worker/index.html index 4debd5ae3a..3dce8b2999 100644 --- a/12.x/generators/plugin_queue-worker/index.html +++ b/12.x/generators/plugin_queue-worker/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_rest-resource/index.html b/12.x/generators/plugin_rest-resource/index.html index 9debc6d9c9..4717dbdd36 100644 --- a/12.x/generators/plugin_rest-resource/index.html +++ b/12.x/generators/plugin_rest-resource/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_views_argument-default/index.html b/12.x/generators/plugin_views_argument-default/index.html index 49afd49d6a..83df9b0bdb 100644 --- a/12.x/generators/plugin_views_argument-default/index.html +++ b/12.x/generators/plugin_views_argument-default/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_views_field/index.html b/12.x/generators/plugin_views_field/index.html index e1b63ac1c8..995b825927 100644 --- a/12.x/generators/plugin_views_field/index.html +++ b/12.x/generators/plugin_views_field/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/plugin_views_style/index.html b/12.x/generators/plugin_views_style/index.html index 89358ade2a..a69de9d19c 100644 --- a/12.x/generators/plugin_views_style/index.html +++ b/12.x/generators/plugin_views_style/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/readme/index.html b/12.x/generators/readme/index.html new file mode 100644 index 0000000000..3debefe8ba --- /dev/null +++ b/12.x/generators/readme/index.html @@ -0,0 +1,5333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + readme - Drush + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + + + + + +
    + + + + + + + + + + + + +
    + +
    + + + + +
    +
    + + + +
    +
    +
    + + + + + + + + +
    +
    +
    + + + + +
    +
    + + + + + +

    readme

    +

    Generates README file

    +

    Examples

    +
      +
    • drush generate readme. Generates README file
    • +
    +

    Options

    +
      +
    • --answer=ANSWER. Answer to generator question.
    • +
    • --destination=DESTINATION. Path to a base directory for file writing.
    • +
    • --dry-run. Output the generated code but not save it to file system.
    • +
    +

    Topics

    + + + + + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/12.x/generators/render-element/index.html b/12.x/generators/render-element/index.html index a01d7bd7a2..122a886e1a 100644 --- a/12.x/generators/render-element/index.html +++ b/12.x/generators/render-element/index.html @@ -15,7 +15,7 @@ - + @@ -3878,6 +3878,20 @@ + +
  • + + readme + +
  • + + + + + + + + @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/sdc/index.html b/12.x/generators/sdc/index.html new file mode 100644 index 0000000000..f32ccbbf0a --- /dev/null +++ b/12.x/generators/sdc/index.html @@ -0,0 +1,15 @@ + + + + + + Redirecting... + + + + + + +Redirecting... + + diff --git a/12.x/generators/service-provider/index.html b/12.x/generators/service-provider/index.html index db456b61f2..6b57b5c326 100644 --- a/12.x/generators/service-provider/index.html +++ b/12.x/generators/service-provider/index.html @@ -18,7 +18,7 @@ - + @@ -3879,6 +3879,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3957,6 +3971,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/service_access-checker/index.html b/12.x/generators/service_access-checker/index.html index 7f5c8754cb..e7f9bb32f2 100644 --- a/12.x/generators/service_access-checker/index.html +++ b/12.x/generators/service_access-checker/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/service_breadcrumb-builder/index.html b/12.x/generators/service_breadcrumb-builder/index.html index e815eb1cf6..7452963b18 100644 --- a/12.x/generators/service_breadcrumb-builder/index.html +++ b/12.x/generators/service_breadcrumb-builder/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/service_cache-context/index.html b/12.x/generators/service_cache-context/index.html index 3012ee7ed1..5d480e2429 100644 --- a/12.x/generators/service_cache-context/index.html +++ b/12.x/generators/service_cache-context/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/service_custom/index.html b/12.x/generators/service_custom/index.html index 922f0a012e..e7264f47cf 100644 --- a/12.x/generators/service_custom/index.html +++ b/12.x/generators/service_custom/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/service_event-subscriber/index.html b/12.x/generators/service_event-subscriber/index.html index fed9d02cf1..7cd1bbdfeb 100644 --- a/12.x/generators/service_event-subscriber/index.html +++ b/12.x/generators/service_event-subscriber/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/service_logger/index.html b/12.x/generators/service_logger/index.html index d2f607b219..ed997bad4e 100644 --- a/12.x/generators/service_logger/index.html +++ b/12.x/generators/service_logger/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/service_middleware/index.html b/12.x/generators/service_middleware/index.html index 1c2ee5902d..531bba1cf0 100644 --- a/12.x/generators/service_middleware/index.html +++ b/12.x/generators/service_middleware/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/service_param-converter/index.html b/12.x/generators/service_param-converter/index.html index 8d252bf991..24bcb23fc8 100644 --- a/12.x/generators/service_param-converter/index.html +++ b/12.x/generators/service_param-converter/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/service_path-processor/index.html b/12.x/generators/service_path-processor/index.html index ac704ed63c..fa457d60e6 100644 --- a/12.x/generators/service_path-processor/index.html +++ b/12.x/generators/service_path-processor/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/service_request-policy/index.html b/12.x/generators/service_request-policy/index.html index 83cf2d3112..76f634c0ab 100644 --- a/12.x/generators/service_request-policy/index.html +++ b/12.x/generators/service_request-policy/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/service_response-policy/index.html b/12.x/generators/service_response-policy/index.html index 249b2e6c65..ffdf79407f 100644 --- a/12.x/generators/service_response-policy/index.html +++ b/12.x/generators/service_response-policy/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/service_route-subscriber/index.html b/12.x/generators/service_route-subscriber/index.html index cedebfc458..8de66ccad8 100644 --- a/12.x/generators/service_route-subscriber/index.html +++ b/12.x/generators/service_route-subscriber/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/service_theme-negotiator/index.html b/12.x/generators/service_theme-negotiator/index.html index 7a75f871bd..d695f18279 100644 --- a/12.x/generators/service_theme-negotiator/index.html +++ b/12.x/generators/service_theme-negotiator/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/service_twig-extension/index.html b/12.x/generators/service_twig-extension/index.html index 4e6c0fe509..59bb5149e0 100644 --- a/12.x/generators/service_twig-extension/index.html +++ b/12.x/generators/service_twig-extension/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/service_uninstall-validator/index.html b/12.x/generators/service_uninstall-validator/index.html index 7fce178b08..47c3d8b4a0 100644 --- a/12.x/generators/service_uninstall-validator/index.html +++ b/12.x/generators/service_uninstall-validator/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/single-directory-component/index.html b/12.x/generators/single-directory-component/index.html new file mode 100644 index 0000000000..0247309f3b --- /dev/null +++ b/12.x/generators/single-directory-component/index.html @@ -0,0 +1,5344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + single-directory-component - Drush + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + + + + + +
    + + + + + + + + + + + + +
    + +
    + + + + +
    +
    + + + +
    +
    +
    + + + + + + + + +
    +
    +
    + + + + +
    +
    + + + + + +

    single-directory-component

    +

    Generates Drupal SDC theme component

    +

    Examples

    +
      +
    • drush generate single-directory-component. Generates Drupal SDC theme component
    • +
    +

    Options

    +
      +
    • --answer=ANSWER. Answer to generator question.
    • +
    • --destination=DESTINATION. Path to a base directory for file writing.
    • +
    • --dry-run. Output the generated code but not save it to file system.
    • +
    +

    Topics

    + +

    Aliases

    +
      +
    • sdc
    • +
    + + + + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/12.x/generators/test_browser/index.html b/12.x/generators/test_browser/index.html index 108db6d3c7..2b7816fe90 100644 --- a/12.x/generators/test_browser/index.html +++ b/12.x/generators/test_browser/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/test_kernel/index.html b/12.x/generators/test_kernel/index.html index c5e1701482..3c771bf9ff 100644 --- a/12.x/generators/test_kernel/index.html +++ b/12.x/generators/test_kernel/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/test_nightwatch/index.html b/12.x/generators/test_nightwatch/index.html index 91f36279c5..b28bf08d5d 100644 --- a/12.x/generators/test_nightwatch/index.html +++ b/12.x/generators/test_nightwatch/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/test_unit/index.html b/12.x/generators/test_unit/index.html index c5ffb4a427..5d414b20ae 100644 --- a/12.x/generators/test_unit/index.html +++ b/12.x/generators/test_unit/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/test_webdriver/index.html b/12.x/generators/test_webdriver/index.html index c441d1e537..6d8e4e374b 100644 --- a/12.x/generators/test_webdriver/index.html +++ b/12.x/generators/test_webdriver/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/theme/index.html b/12.x/generators/theme/index.html index f6341c6001..aee0d09504 100644 --- a/12.x/generators/theme/index.html +++ b/12.x/generators/theme/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/theme_settings/index.html b/12.x/generators/theme_settings/index.html index 1a520324f8..de1f43dbce 100644 --- a/12.x/generators/theme_settings/index.html +++ b/12.x/generators/theme_settings/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/yml_breakpoints/index.html b/12.x/generators/yml_breakpoints/index.html index d06914ceb2..0cbe16e9d7 100644 --- a/12.x/generators/yml_breakpoints/index.html +++ b/12.x/generators/yml_breakpoints/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/yml_links_action/index.html b/12.x/generators/yml_links_action/index.html index 7e4c7a8515..fa45132ce8 100644 --- a/12.x/generators/yml_links_action/index.html +++ b/12.x/generators/yml_links_action/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/yml_links_contextual/index.html b/12.x/generators/yml_links_contextual/index.html index da5f8541d8..b9d8fe28cd 100644 --- a/12.x/generators/yml_links_contextual/index.html +++ b/12.x/generators/yml_links_contextual/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/yml_links_menu/index.html b/12.x/generators/yml_links_menu/index.html index bef73c7089..2ab6ad4f12 100644 --- a/12.x/generators/yml_links_menu/index.html +++ b/12.x/generators/yml_links_menu/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/yml_links_task/index.html b/12.x/generators/yml_links_task/index.html index 5c0cde654d..6cc9af962e 100644 --- a/12.x/generators/yml_links_task/index.html +++ b/12.x/generators/yml_links_task/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/yml_migration/index.html b/12.x/generators/yml_migration/index.html index 7efc1ffeba..4465291d69 100644 --- a/12.x/generators/yml_migration/index.html +++ b/12.x/generators/yml_migration/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/yml_module-libraries/index.html b/12.x/generators/yml_module-libraries/index.html index 96329db9bd..272323fe0f 100644 --- a/12.x/generators/yml_module-libraries/index.html +++ b/12.x/generators/yml_module-libraries/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/yml_permissions/index.html b/12.x/generators/yml_permissions/index.html index ca25c723fc..9cf2fd819b 100644 --- a/12.x/generators/yml_permissions/index.html +++ b/12.x/generators/yml_permissions/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/yml_routing/index.html b/12.x/generators/yml_routing/index.html index a9a63cafc1..0b44231078 100644 --- a/12.x/generators/yml_routing/index.html +++ b/12.x/generators/yml_routing/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/yml_services/index.html b/12.x/generators/yml_services/index.html index 30fe8f167b..6c362dd591 100644 --- a/12.x/generators/yml_services/index.html +++ b/12.x/generators/yml_services/index.html @@ -3877,6 +3877,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3900,6 +3914,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/generators/yml_theme-libraries/index.html b/12.x/generators/yml_theme-libraries/index.html index 01aaad71b3..4e21a2d1b2 100644 --- a/12.x/generators/yml_theme-libraries/index.html +++ b/12.x/generators/yml_theme-libraries/index.html @@ -3875,6 +3875,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3898,6 +3912,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/hooks/index.html b/12.x/hooks/index.html index 7c9a7f58af..41b3f5bd61 100644 --- a/12.x/hooks/index.html +++ b/12.x/hooks/index.html @@ -3921,6 +3921,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3944,6 +3958,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/index.html b/12.x/index.html index e141c38d1f..fa378d5641 100644 --- a/12.x/index.html +++ b/12.x/index.html @@ -3947,6 +3947,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3970,6 +3984,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/install/index.html b/12.x/install/index.html index a5d8896eb8..20581eaf4f 100644 --- a/12.x/install/index.html +++ b/12.x/install/index.html @@ -3914,6 +3914,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3937,6 +3951,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/io/index.html b/12.x/io/index.html index 871fd2c6df..99247c0bb6 100644 --- a/12.x/io/index.html +++ b/12.x/io/index.html @@ -3918,6 +3918,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3941,6 +3955,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/migrate/index.html b/12.x/migrate/index.html index bfd7faac26..9376663cf0 100644 --- a/12.x/migrate/index.html +++ b/12.x/migrate/index.html @@ -3925,6 +3925,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3948,6 +3962,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/output-formats-filters/index.html b/12.x/output-formats-filters/index.html index 6277ac3785..401da94744 100644 --- a/12.x/output-formats-filters/index.html +++ b/12.x/output-formats-filters/index.html @@ -3939,6 +3939,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3962,6 +3976,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/repl/index.html b/12.x/repl/index.html index 69864cc053..0c54223d0d 100644 --- a/12.x/repl/index.html +++ b/12.x/repl/index.html @@ -3880,6 +3880,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3903,6 +3917,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/search/search_index.json b/12.x/search/search_index.json index 83902c9c52..e934bd26af 100644 --- a/12.x/search/search_index.json +++ b/12.x/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Home","text":"

    Drush is a command line shell and Unix scripting interface for Drupal. Drush core ships with lots of useful commands and generators. Similarly, it runs update.php, executes SQL queries, runs content migrations, and misc utilities like cron or cache rebuild. Drush can be extended by 3rd party commandfiles.

    "},{"location":"#resources","title":"Resources","text":""},{"location":"#support","title":"Support","text":""},{"location":"#faq","title":"FAQ","text":""},{"location":"#what-does-drush-stand-for","title":"What does Drush stand for?","text":"

    A: The Drupal Shell.

    "},{"location":"#how-do-i-pronounce-drush","title":"How do I pronounce Drush?","text":"

    Some people pronounce the dru with a long 'u' like Drupal. Fidelity points go to them, but they are in the minority. Most pronounce Drush so that it rhymes with hush, rush, flush, etc. This is the preferred pronunciation.

    "},{"location":"#credits","title":"Credits","text":""},{"location":"bootstrap/","title":"The Drush Bootstrap Process","text":"

    When preparing to run a command, Drush works by bootstrapping the Drupal environment in very much the same way that is done during a normal page request from the web server, so most Drush commands run in the context of a fully-initialized website.

    For efficiency and convenience, some Drush commands can work without first bootstrapping a Drupal site, or by only partially bootstrapping a site. This is faster than a full bootstrap. It is also a matter of convenience, because some commands are useful even when you don't have a working Drupal site.

    Commands may specify their bootstrap level with via an attribute or an annotation. Commands supplied by Drupal modules are always full.

    PHP8 AttributeAnnotation
    use Drush\\Attributes as CLI;\n\n#[CLI\\Bootstrap(level: DrupalBootLevels::NONE)]\npublic function fetch($search = null, $options = ['image-viewer' => 'open', 'google-custom-search-api-key' => 'AIza']) {\n    $this->doFetch($search, $options);\n}\n
    /**\n * @bootstrap none\n*/\npublic function fetch($search = null, $options = ['image-viewer' => 'open', 'google-custom-search-api-key' => 'AIza']) {\n    $this->doFetch($search, $options);\n}\n

    Prior to bootstrapping, Drush goes through the preflight process, where the following things occur:

    Preflight

    1. Commandline arguments are parsed.
    2. Configuration files are read.
    3. The site-alias included on the commandline is loaded if present.
    4. The local selected site is determined, if any.
    5. Dependency injection is done.
    6. Global commandfiles are loaded. Commandfiles that ship with modules are loaded later, during bootstrap @full.
    7. The command is dispatched via the Symfony Console component.

    Bootstrapping is done from a Symfony Console command hook. The different bootstrap levels are described below.

    "},{"location":"bootstrap/#none","title":"none","text":"

    Only run Drush preflight, without considering Drupal at all. Any code that operates on the Drush installation, and not specifically any Drupal directory, should bootstrap to this phase.

    "},{"location":"bootstrap/#root","title":"root","text":"

    Set up and test for a valid Drupal root, either through the --root options, or evaluated based on the current working directory. Any code that interacts with an entire Drupal installation, and not a specific site on the Drupal installation should use this bootstrap phase.

    "},{"location":"bootstrap/#site","title":"site","text":"

    Set up a Drupal site directory and the correct environment variables to allow Drupal to find the configuration file. If no site is specified with the --uri options, Drush will assume the site is 'default', which mimics Drupal's behaviour. Note that it is necessary to specify a full URI, e.g. --uri=http://example.com, in order for certain Drush commands and Drupal modules to behave correctly. See the Drush configuration for more information. Any code that needs to modify or interact with a specific Drupal site's settings.php file should bootstrap to this phase.

    "},{"location":"bootstrap/#configuration","title":"configuration","text":"

    Load the settings from the Drupal sites directory. This phase is analogous to the DRUPAL_BOOTSTRAP_CONFIGURATION bootstrap phase in Drupal itself, and this is also the first step where Drupal specific code is included. This phase is commonly used for code that interacts with the Drupal install API, as both install.php and update.php start at this phase.

    "},{"location":"bootstrap/#database","title":"database","text":"

    Connect to the Drupal database using the database credentials loaded during the previous bootstrap phase. This phase is analogous to the DRUPAL_BOOTSTRAP_DATABASE bootstrap phase in Drupal. Any code that needs to interact with the Drupal database API needs to be bootstrapped to at least this phase.

    "},{"location":"bootstrap/#full","title":"full","text":"

    Fully initialize Drupal. This is analogous to the DRUPAL_BOOTSTRAP_FULL bootstrap phase in Drupal. Any code that interacts with the general Drupal API should be bootstrapped to this phase.

    "},{"location":"bootstrap/#max","title":"max","text":"

    This is not an actual bootstrap phase. Commands that use the \"max\" bootstrap level will cause Drush to bootstrap as far as possible, and then run the command regardless of the bootstrap phase that was reached. This is useful for Drush commands that work without a bootstrapped site, but that provide additional information or capabilities in the presence of a bootstrapped site. For example, drush status will show progressively more information the farther the site bootstraps.

    "},{"location":"commands/","title":"Creating Custom Commands","text":"

    Tip

    1. Drush 12 expects commandfiles to use a create() method to inject Drupal and Drush dependencies. Prior versions used a drush.services.yml file which is now deprecated and will be removed in Drush 13.
    2. Drush 12 expects all commandfiles in the <module-name>/Drush/<Commands|Generators> directory. The Drush subdirectory is a new requirement.

    Creating a new Drush command is easy. Follow the steps below.

    1. Run drush generate drush:command-file.
    2. Drush will prompt for the machine name of the module that should \"own\" the file. The module selected must already exist and be enabled. Use drush generate module to create a new module.
    3. Drush will then report that it created a commandfile. Edit as needed.
    4. Use the classes for the core Drush commands at /src/Commands as inspiration and documentation.
    5. See the dependency injection docs for interfaces you can implement to gain access to Drush config, Drupal site aliases, etc. Also note the create() method for injecting Drupal or Drush dependencies.
    6. Write PHPUnit tests based on Drush Test Traits.
    "},{"location":"commands/#attributes-or-annotations","title":"Attributes or Annotations","text":"

    The following are both valid ways to declare a command:

    PHP8 AttributesAnnotations
    use Drush\\Attributes as CLI;\n\n/**\n * Retrieve and display xkcd cartoons (attribute variant).\n */\n#[CLI\\Command(name: 'xkcd:fetch-attributes', aliases: ['xkcd-attributes'])]\n#[CLI\\Argument(name: 'search', description: 'Optional argument to retrieve the cartoons matching an index, keyword, or \"random\".')]\n#[CLI\\Option(name: 'image-viewer', description: 'Command to use to view images (e.g. xv, firefox).', suggestedValues: ['open', 'xv', 'firefox'])]\n#[CLI\\Option(name: 'google-custom-search-api-key', description: 'Google Custom Search API Key')]\n#[CLI\\Usage(name: 'drush xkcd', description: 'Retrieve and display the latest cartoon')]\n#[CLI\\Usage(name: 'drush xkcd sandwich', description: 'Retrieve and display cartoons about sandwiches.')]\npublic function fetch($search = null, $options = ['image-viewer' => 'open', 'google-custom-search-api-key' => 'AIza']) {\n    $this->doFetch($search, $options);\n}\n
    /**\n * @command xkcd:fetch\n * @param $search Optional argument to retrieve the cartoons matching an index number, keyword, or \"random\".\n * @option image-viewer Command to use to view images (e.g. xv, firefox).\n * @option google-custom-search-api-key Google Custom Search API Key.\n * @usage drush xkcd\n *   Retrieve and display the latest cartoon.\n * @usage drush xkcd sandwich\n *   Retrieve and display cartoons about sandwiches.\n * @aliases xkcd\n*/\npublic function fetch($search = null, $options = ['image-viewer' => 'open', 'google-custom-search-api-key' => 'AIza']) {\n    $this->doFetch($search, $options);\n}\n
    "},{"location":"commands/#altering-command-info","title":"Altering Command Info","text":"

    Drush command info (annotations/attributes) can be altered from other modules. This is done by creating and registering command info alterers. Alterers are classes that are able to intercept and manipulate an existing command annotation.

    In the module that wants to alter a command info, add a class that:

    1. The generator class namespace, relative to base namespace, should be Drupal\\<module-name>\\Drush\\CommandInfoAlterers and the class file should be located under the src/Drush/CommandInfoAlterers directory.
    2. The filename must have a name like FooCommandInfoAlterer.php. The prefix Foo can be whatever string you want. The file must end in CommandInfoAlterer.php.
    3. The class must implement the \\Consolidation\\AnnotatedCommand\\CommandInfoAltererInterface.
    4. Implement the alteration logic in the alterCommandInfo() method.
    5. Along with the alter code, it's strongly recommended to log a debug message explaining what exactly was altered. This makes things easier on others who may need to debug the interaction of the alter code with other modules. Also it's a good practice to inject the the logger in the class constructor.

    For an example, see WootCommandInfoAlterer provided by the testing 'woot' module.

    "},{"location":"commands/#symfony-console-commands","title":"Symfony Console Commands","text":"

    Drush lists and runs Symfony Console commands, in addition to more typical annotated commands. See this test and this commandfile.

    "},{"location":"commands/#auto-discovered-commands-psr4","title":"Auto-discovered commands (PSR4)","text":"

    Such commands are auto-discovered by their class PSR4 namespace and class/file name suffix. Drush will auto-discover commands if:

    Auto-discovered commandfiles should declare their Drush version compatibility via a conflict directive. For example, a Composer-managed site-wide command that works with both Drush 11 and Drush 12 might contain something similar to the following in its composer.json file:

        \"conflict\": {\n\"drush/drush\": \"<11.0\",\n}\n
    Using require in place of conflict is not recommended.

    Symlinked packages

    While it is good practice to make your custom commands into a Composer package, please beware that symlinked packages (by using the composer repository type Path) will not be discovered by Drush. When in development, it is recommended to specify your package's path in your drush.yml to have quick access to your commands.

    "},{"location":"commands/#site-wide-commands","title":"Site-wide Commands","text":"

    Commandfiles that are installed in a Drupal site and are not bundled inside a Drupal module are called site-wide commandfiles. Site-wide commands may either be added directly to the Drupal site's repository (e.g. for site-specific policy files), or via composer require. See the examples/Commands folder for examples. In general, it's preferable to use modules to carry your Drush commands.

    Here are some examples of valid commandfile names and namespaces:

    1. Simple
      • Filename: $PROJECT_ROOT/drush/Commands/ExampleCommands.php
      • Namespace: Drush\\Commands
    2. Nested in a subdirectory committed to the site's repository
      • Filename: $PROJECT_ROOT/drush/Commands/example/ExampleCommands.php
      • Namespace: Drush\\Commands\\example
    3. Nested in a subdirectory installed via a Composer package
      • Filename: $PROJECT_ROOT/drush/Commands/contrib/dev_modules/ExampleCommands.php
      • Namespace: Drush\\Commands\\dev_modules

    Note: Make sure you do not include src in the path to your command. Your command may not be discovered and have additional problems.

    If a commandfile is added via a Composer package, then it may declare any dependencies that it may need in its composer.json file. Site-wide commandfiles that are committed directly to a site's repository only have access to the dependencies already available in the site.

    A site-wide commandfile should have tests that run with each (major) version of Drush that is supported. You may model your test suite after the example drush extension project.

    "},{"location":"commands/#global-commands-discovered-by-configuration","title":"Global commands discovered by configuration","text":"

    Deprecation

    Configuration discovery has been deprecated and will be removed in a future version of Drush. It is recommended that you avoid global Drush commands, and favor site-wide or PSR4 discovered commandfiles instead. If you really need commands that are not part of any Drupal site, consider making a stand-alone script or custom .phar instead. See ahoy, Robo and g1a/starter as potential starting points.

    Global commandfiles discoverable by configuration are not supported by default; in order to enable them, you must configure your drush.yml configuration file to add an include search location.

    For example:

    drush:\npaths:\ninclude:\n- '${env.home}/.drush/commands'\n
    With this configuration in place, global commands may be placed as described in the Site-Wide Drush Commands section above. Global commandfiles may not declare any dependencies of their own; they may only use those dependencies already available via the autoloader.

    Tip

    1. The filename must be have a name like Commands/ExampleCommands.php
    2. The prefix Example can be whatever string you want.
    3. The file must end in Commands.php
      1. The directory above Commands must be one of:
        1. A Folder listed in the 'include' option. Include may be provided via config or via CLI.
        2. ../drush, /drush or /sites/all/drush. These paths are relative to Drupal root.
    "},{"location":"config-exporting/","title":"Exporting and Importing Configuration","text":"

    Drush provides commands to export, pull, and import Drupal configuration files.

    "},{"location":"config-exporting/#simple-value-changes","title":"Simple - value changes","text":"

    It is not necessary to alter configuration values to make simple value changes to configuration variables, as this may be done by the configuration override system.

    The configuration override system allows you to change configuration values for a given instance of a site (e.g. the development server) by setting configuration variables in the site's settings.php file. For example, to change the name of a local development site:

    $config['system.site']['name'] = 'Local Install of Awesome Widgets, Inc.';\n
    Note that the configuration override system is a Drupal feature, not a Drush feature. It should be the preferred method for changing configuration values on a per-environment basis; however, it does not work for some things, such as enabling and disabling modules.

    "},{"location":"config-exporting/#advanced-variation-by-environment","title":"Advanced - variation by environment","text":""},{"location":"cron/","title":"Running Drupal cron tasks from Drush","text":"

    Drupal cron tasks are often set up to be run via a wget/curl call to cron.php; this same task can also be accomplished via the cron command, which circumvents the need to provide a web server interface to cron.

    "},{"location":"cron/#quick-start","title":"Quick start","text":"

    If you just want to get started quickly, here is a crontab entry that will run cron once every hour at ten minutes after the hour:

    10 * * * * cd [DOCROOT] && /usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin COLUMNS=72 ../vendor/bin/drush --uri=your.drupalsite.org --quiet maint:status && /vendor/bin/drush --uri=your.drupalsite.org --quiet cron\n

    You should set up crontab to run your cron tasks as the same user that runs the web server; for example, if you run your web server as the user www-data:

    sudo crontab -u www-data -e\n

    You might need to edit the crontab entry shown above slightly for your particular setup; for example, if you have installed Drush to some directory other than /usr/local/drush, then you will need to adjust the path to drush appropriately. We'll break down the meaning of each section of the crontab entry in the documentation that continues below.

    "},{"location":"cron/#setting-the-schedule","title":"Setting the schedule","text":"

    See man 5 crontab for information on how to format the information in a crontab entry. In the example above, the schedule for the crontab is set by the string 10 * * * *. These fields are the minute, hour, day of month, month and day of week; * means essentially 'all values', so 10 * * * * will run any time the minute == 10 (once every hour).

    "},{"location":"cron/#setting-the-path","title":"Setting the PATH","text":"

    We use /usr/bin/env to run Drush so that we can set up some necessary environment variables that Drush needs to execute. By default, cron will run each command with an empty PATH, which would not work well with Drush. To find out what your PATH needs to be, just type:

    echo $PATH\n

    Take the value that is output and place it into your crontab entry in the place of the one shown above. You can remove any entry that is known to not be of interest to Drush (e.g. /usr/games), or is only useful in a graphic environment (e.g. /usr/X11/bin).

    "},{"location":"cron/#setting-columns","title":"Setting COLUMNS","text":"

    When running Drush in a terminal, the number of columns will be automatically determined by Drush by way of the tput command, which queries the active terminal to determine what the width of the screen is. When running Drush from cron, there will not be any terminal set, and the call to tput will produce an error message. Spurious error messages are undesirable, as cron is often configured to send email whenever any output is produced, so it is important to make an effort to insure that successful runs of cron complete with no output.

    In some cases, Drush is smart enough to recognize that there is no terminal -- if the terminal value is empty or \"dumb\", for example. However, there are some \"non-terminal\" values that Drush does not recognize, such as \"unknown.\" If you manually set COLUMNS, then Drush will respect your setting and will not attempt to call tput.

    "},{"location":"cron/#using-quiet","title":"Using --quiet","text":"

    By default, Drush will print a success message when the run of cron is completed. The --quiet flag will suppress these and other progress messages, again avoiding an unnecessary email message.

    "},{"location":"cron/#specifying-the-drupal-site-to-run","title":"Specifying the Drupal site to run","text":"

    There are many ways to tell Drush which Drupal site to select for the active command, and any may be used here. The example uses cd [DOCROOT], but you could also use the --root and --uri flags.

    "},{"location":"cron/#avoiding-maintenance-mode","title":"Avoiding Maintenance mode","text":"

    The call to maint:status checks to see if the site is in maintenance mode. If yes, cron will not run and the command returns a failure. It is not safe to run cron while the site is in maintenance. See https://drupal.slack.com/archives/C45SW3FLM/p1675287662331809.

    "},{"location":"dependency-injection/","title":"Dependency Injection","text":"

    Drush command files obtain references to the resources they need through a technique called dependency injection. When using this programing paradigm, a class by convention will never use the new operator to instantiate dependencies. Instead, it will store the other objects it needs in class variables, and provide a way for other code to assign an object to that variable.

    "},{"location":"dependency-injection/#types-of-injection","title":"Types of Injection","text":"

    There are two ways that a class can receive its dependencies. One is called \u201cconstructor injection\u201d, and the other is called \u201csetter injection\u201d.

    Example of constructor injection:

        public function __construct(DependencyType $service)\n    {\n        $this->service = $service;\n    }\n

    Example of setter injection:

        public function setService(DependencyType $service)\n    {\n        $this->service = $service;\n    }\n
    The code that is responsible for providing the dependencies a class needs is usually an object called the dependency injection container.

    "},{"location":"dependency-injection/#create-method","title":"create() method","text":"

    11.6+

    Tip

    Drush 11 and prior required dependency injection via a drush.services.yml file. This approach is deprecated in Drush 12 and will be removed in Drush 13.

    Drush command files can inject services by adding a create() method to the commandfile. See creating commands for instructions on how to use the Drupal Code Generator to create a simple command file starter. A create() method and a constructor will look something like this:

    class WootStaticFactoryCommands extends DrushCommands\n{\n    protected $configFactory;\n\n    protected function __construct($configFactory)\n    {\n        $this->configFactory = $configFactory;\n    }\n\n    public static function create(ContainerInterface $container, DrushContainer $drush): self\n    {\n        return new static($container->get('config.factory'));\n    }\n
    See the Drupal Documentation for details on how to inject Drupal services into your command file. Drush's approach mimics Drupal's blocks, forms, and controllers.

    Note that if you do not need to pull any services from the Drush container, then you may omit the second parameter to the create() method.

    "},{"location":"dependency-injection/#createearly-method","title":"createEarly() method","text":"

    12.0+ Drush commands that need to be instantiated prior to bootstrap may do so by utilizing the createEarly() static factory. This method looks and functions exacty like the create() static factory, except it is only passed the Drush container. The Drupal container is not available to command handlers that use createEarly().

    Note also that Drush commands packaged with Drupal modules are not discovered until after Drupal bootstraps, and therefore cannot use createEarly(). This mechanism is only usable by PSR-4 discovered commands packaged with Composer projects that are not Drupal modules.

    "},{"location":"dependency-injection/#inflection","title":"Inflection","text":"

    Tip

    Inflection is deprecated in Drush 12; use create() or createEarly() instead. Some classes are no longer available for inflection in Drush 12, and more (or potentially all) may be removed in Drush 13.

    Drush will also inject dependencies that it provides using a technique called inflection. Inflection is a kind of dependency injection that works by way of a set of provided inflection interfaces, one for each available service. Each of these interfaces will define one or more setter methods (usually only one); these will automatically be called by Drush when the commandfile object is instantiated. The command only needs to implement this method and save the provided object in a class field. There is usually a corresponding trait that may be included via a use statement to fulfill this requirement.

    For example:

    <?php\nnamespace Drupal\\my_module\\Commands;\n\nuse Drush\\Commands\\DrushCommands;\nuse Consolidation\\OutputFormatters\\StructuredData\\ListDataFromKeys;\nuse Consolidation\\SiteAlias\\SiteAliasManagerAwareInterface;\nuse Consolidation\\SiteAlias\\SiteAliasManagerAwareTrait;\n\nclass MyModuleCommands extends DrushCommands implements SiteAliasManagerAwareInterface\n{\n  use SiteAliasManagerAwareTrait;\n\n  /**\n   * Prints the current alias name and info.\n   */\n  #[CLI\\Command(name: 'mymodule:myAlias')]\n  public function myAlias(): ListDataFromKeys \n  {\n    $selfAlias = $this->siteAliasManager()->getSelf();\n    $this->logger()->success(\u2018The current alias is {name}\u2019, [\u2018name\u2019 => $selfAlias]);\n    return new ListDataFromKeys($aliasRecord->export());\n  }\n}\n

    All Drush command files extend DrushCommands. DrushCommands implements ConfigAwareInterface, IOAwareInterface, LoggerAwareInterface, which gives access to $this->getConfig(), $this->logger() and other ways to do input and output. See the IO documentation for more information.

    Any additional services that are desired must be injected by implementing the appropriate inflection interface.

    Additional Interfaces:

    Note that although the autoloader and Drush dependency injection container is available and may be injected into your command file if needed, this should be avoided. Favor using services that can be injected from Drupal or Drush. Some of the objects in the container are not part of the Drush public API, and may not maintain compatibility in minor and patch releases.

    "},{"location":"deploycommand/","title":"Deploy","text":"

    10.3+

    The deploy command standardizes how Drupal deployments work. The intent is your deployment script updates the codebase for the target site and then this command performs the following:

    drush updatedb --no-cache-clear\ndrush cache:rebuild\ndrush config:import\ndrush cache:rebuild\ndrush deploy:hook\n
    "},{"location":"deploycommand/#authoring-update-functions","title":"Authoring update functions","text":"

    Below are the 3 types of update functions run by this command, in order. Choose the most appropriate for your need.

    Function Drupal API Purpose HOOK_update_n() Not allowed Low level changes. HOOK_post_update_NAME() Allowed Runs before config is imported. HOOK_deploy_NAME() Allowed Runs after config is imported."},{"location":"deploycommand/#configuration","title":"Configuration","text":"

    If you need to customize this command, you should use Drush configuration for the subcommands listed above (e.g. updatedb, config:import, etc.).

    "},{"location":"generators/","title":"Overview","text":"

    Tip

    Drush 11 and prior required generators to define a drush.services.yml file. This is no longer used with Drush 12+ generators. See create() method for injecting dependencies.

    Generators jump start your coding by building all the boring boilerplate code for you. After running the generate command, you have a guide for where to insert your custom logic.

    Drush's generators reuse classes provided by the excellent Drupal Code Generator project. See its Commands directory for inspiration.

    "},{"location":"generators/#writing-custom-generators","title":"Writing Custom Generators","text":"

    Drupal modules may supply their own Generators, just like they can supply Commands.

    See Woot module, which Drush uses for testing. Specifically,

    1. Write a class similar to ExampleGenerator. Implement your custom logic in the generate() method. Typically this class is placed under the src/Drush/Generators directory.
    2. Add a .twig file to the same directory. This template specifies what gets output from the generator.
    "},{"location":"generators/#auto-discovered-generators-psr4","title":"Auto-discovered Generators (PSR4)","text":"

    Generators that don't ship inside Drupal modules are called global generators. For example see CustomDrushGenerator. In general, it is better to use modules to carry your generators. If you still prefer using a global generator, please note:

    1. The generator class should be PSR4 auto-loadable.
    2. The generator class namespace, relative to base namespace, should be Drush\\Generators. For instance, if a Drush generator provider third party library maps this PSR4 autoload entry:
      \"autoload\": {\n\"psr-4\": {\n\"My\\\\Custom\\\\Library\\\\\": \"src\"\n}\n}\n
      then the Drush global generator class namespace should be My\\Custom\\Library\\Drush\\Generators and the class file should be located under the src/Drush/Generators directory.
    3. The filename must have a name like FooGenerator.php. The prefix Foo can be whatever string you want. The file must end in Generator.php.
    "},{"location":"generators/#site-wide-generators","title":"Site-wide Generators","text":"

    Sitewide generators (as opposed to auto-discovered PSR4) have a namespace that starts with \\Drush\\Generators, the directory above Generators must be one of: 1. A Folder listed in the --include option. include may be provided via config or via CLI. 1. ../drush, /drush or /sites/all/drush. These paths are relative to Drupal root.

    "},{"location":"hooks/","title":"Hooks","text":""},{"location":"hooks/#core-hooks","title":"Core Hooks","text":"

    All commandfiles may implement methods that are called by Drush at various times in the request cycle. To implement one, add a #[CLI\\Hook(type: HookManager::ARGUMENT_VALIDATOR, target: 'pm:install')] (for example) to the top of your method.

    "},{"location":"hooks/#custom-hooks","title":"Custom Hooks","text":"

    Drush commands can define custom events that other command files can hook. You can find examples in CacheCommands and SanitizeCommands

    First, the command must implement CustomEventAwareInterface and use CustomEventAwareTrait, as described in the dependency injection documentation.

    Then, the command may ask the provided hook manager to return a list of handlers with a certain attribute. In the example below, the my-event label is used:

        /**\n     * This command uses a custom event 'my-event' to collect data.  Note that\n     * the event handlers will not be found unless the hook manager is\n     * injected into this command handler object via `setHookManager()`\n     * (defined in CustomEventAwareTrait).\n     */\n    #[CLI\\Command(name: 'example:command')]  \n    public function exampleCommand()\n    {\n        $myEventHandlers = $this->getCustomEventHandlers('my-event');\n        $result = [];\n        foreach ($myEventHandlers as $handler) {\n            $result[] = $handler();\n        }\n        sort($result);\n        return implode(',', $result);\n    }\n

    Other commandfiles may provide implementations via a PHP8 Attribute or an Annotation.

    PHP8 AttributesAnnotations
    /**\n * #[CLI\\Hook(type: HookManager::ON_EVENT, target: 'my-event')]\n */\npublic function hookOne()\n{\n    return 'one';\n}\n
    /**\n * @hook on-event my-event\n */\npublic function hookOne()\n{\n    return 'one';\n}\n
    "},{"location":"install/","title":"Install","text":"

    Tip

    Drush only supports one install method. It requires that your Drupal site be built with Composer and Drush be listed as a dependency.

    See the Drush 8 or Drush 9 docs for installing prior versions of Drush.

    1. Composer. It is required that Drupal sites be built using Composer, with Drush listed as a dependency. See recommended-project (Drush must be added). If your Composer project doesn't yet depend on Drush, run composer require drush/drush to add it.
    2. Execution. Change your working directory to your project root, and call Drush via vendor/bin/drush. To make this easier, append ./vendor/bin to the end of your $PATH; this allows you to call Drush via drush once your working directory is set. If you only have only one Drupal codebase on your system, you may put /path/to/vendor/bin/drush in your $PATH; if you do this, then it is not necessary to set your working directory before calling Drush.
    3. Completion. Optional. Append to .bashrc or equivalent for ZSH or Fish shell. Run drush completion --help for more details.
    4. Multiple Codebases. Optional. If using the bash shell, consider installing the fd project, a small set of scripts that make it easier to switch between different project directories quickly, with type completion.

    Note

    "},{"location":"install/#drupal-compatibility","title":"Drupal Compatibility","text":"Drush Version PHP Version End Of Life Drupal versions 7 8 9 10 Drush 12 8.1+ TBD \u2705 Drush 11 7.4+ Nov 2023 \u2705 \u2713 Drush 10 7.1+ (not 8) Jan 2022 \u2713 \u2713 Drush 9 5.6+ May 2020 \u2713 Drush 8 5.4.5+ Jan 2025 \u2705 \u2713\ufe0f Drush 7 5.3.0+ Jul 2017 \u2713 Drush 6 5.3.0+ Dec 2015 \u2713 Drush 5 5.2.0+ May 2015 \u2713 Legend \u2705 Supported and recommended \u2713 Compatible but no longer supported"},{"location":"io/","title":"Input / Output","text":""},{"location":"io/#the-io-system","title":"The io() system","text":""},{"location":"migrate/","title":"Defining and running migrations","text":"

    10.4+

    The Migrate API delivers services for migrating data from a source system to Drupal. This API is provided by the core migrate module. In order to migrate data to Drupal, you'll need to create migrations for each type of destination data.

    These commands are an alternative to https://www.drupal.org/project/migrate_tools. Don't use that module if you use these commands.

    "},{"location":"migrate/#defining-migrations","title":"Defining migrations","text":"

    Learn how to create migrations from the Drupal official documentation:

    "},{"location":"migrate/#running-migrations","title":"Running migrations","text":"

    Drush provides a set of commands that allows to run migration operations such as importing, checking the current status of migrations, rolling-back migrations, stopping an ongoing migration, etc. Such commands are available only when the migrate module is enabled. In order the get a full list of migrate commands, type:

    drush --filter=migrate\n

    To get help on each command run drush with the command name as parameter and the --help option. For example next command will show details about the migrate:import Drush command:

    drush migrate:import --help\n
    "},{"location":"output-formats-filters/","title":"Output Formats, Fields and Filters","text":"

    Drush utilizes a powerful formatting and filtering system that provides the user with a lot of control over how output from various commands is rendered.

    "},{"location":"output-formats-filters/#output-formats","title":"Output Formats","text":"

    The --format option may be used to select the data format used to print the output of a command. Most commands that produce informative output about some object or system can transform their data into different formats. For example, the version command may be printed in a human-readable table (the default), or in a json array:

    $ drush version\n Drush version : 10.3.1\n$ drush version --format=json\n{\n\"drush-version\": \"10.3.1\"\n}\n
    The available output formats are shown in the help for each command:
    $ drush help version\nShow drush version.\n\nOptions:\n --format=<json>    Select output format. Available: json, string, var_export, yaml. Default is key-value.\n

    "},{"location":"output-formats-filters/#output-fields","title":"Output Fields","text":"

    If you wish to limit the number of columns produced by a command, use the --fields option. List the field names in the order they should be displayed:

    $ drush views:list --fields=machine-name,status\n+-------------------+----------+\n| Machine name      | Status   |\n+-------------------+----------+\n| block_content     | Enabled  |\n| comment           | Enabled  |\n| comments_recent   | Enabled  |\n| content           | Enabled  |\n| content_recent    | Enabled  |\n| files             | Enabled  |\n| frontpage         | Enabled  |\n| taxonomy_term     | Enabled  |\n| user_admin_people | Enabled  |\n| watchdog          | Enabled  |\n| who_s_new         | Enabled  |\n| who_s_online      | Enabled  |\n| archive           | Disabled |\n| glossary          | Disabled |\n+-------------------+----------+\n
    The available field names are shown in the help text:
    $ drush help views:list\nGet a list of all views in the system.\n\nOptions:\n  --fields=FIELDS   Available fields: Machine name (machine-name),     Name (label), Description (description), Status    (status), Tag (tag) [default:                      \"machine-name,label,description,status\"]           
    Fields may be named either using their human-readable name, or via their machine name.

    Note also that some commands do not display all of their available data columns by default. To show all available fields, use --fields=*

    There is also a singular form --field available. If this form is used, it will also force the output format to string.

    $ drush views:list --field=machine-name \nblock_content\ncomment\ncomments_recent\ncontent\ncontent_recent\nfiles\nfrontpage\ntaxonomy_term\nuser_admin_people\nwatchdog\nwho_s_new\nwho_s_online\narchive\nglossary\n

    "},{"location":"output-formats-filters/#output-filters","title":"Output Filters","text":"

    A number of Drush commands that output tabular data support a --filter option that allows rows from the output to be selected with simple logic expressions.

    In its simplest form, the --filter option takes a string that indicates the value to filter by in the command's default filter field. For example, the role:list command specifies perms as its default filter; the output of the role:list command may be limited to only those roles that have a specified permission:

    $ drush role:list --filter='post comments'\nauthenticated:\n  label: 'Authenticated user'\nperms:\n    - 'access comments'\n- 'access content'\n- 'access shortcuts'\n- 'access site-wide contact form'\n- 'access user contact forms'\n- 'post comments'\n- 'search content'\n- 'skip comment approval'\n- 'use text format basic_html'\n
    Note that not all commands have a default filter field.

    Other fields in the output may be searched by using a simple expression in the --filter term. For example, to list only the enabled extensions with the pm:list command, you could run:

    $ drush pm:list --filter='status=enabled'\n
    To search for fields that contain a string using the operator *=, or match a regular expression with the ~= operator. For example, to find all views whose machine name contains the word content:
    drush views:list --filter='machine-name*=content'\n
    To use a regular expression to find any core requirement notice whose title contains either php or gd
    drush core:requirements --filter='title~=#(php|gd)#i'\n
    Finally, filter expressions may also use logical-and (&&) or logical-or (||) operations to separate multiple terms. Parenthesis are not supported. For example, to search both the title and severity fields in the core:requirements command:
    drush core:requirements --filter='title~=#(php|gd)#i&&severity=warning'\n

    The = and *= operators always use case-insensitive comparisons. The ~= operator is case-sensitive, unless the i PCRE modifier is used, as shown in the previous example.

    "},{"location":"output-formats-filters/#comparison-of-filters-with-grep","title":"Comparison of Filters with Grep","text":"

    Using the --filter feature is similar to using grep. The main difference is that the filter feature does a semantic search, which is to say that it explicitly compares against the data in specific fields. In comparison, the grep command does a line-based search.

    Show only results where the severity is warning:

    drush core:requirements --filter='severity=warning'

    Show only lines that contain the string warning (either in the severity field, or somewhere else on the line):

    drush core:requirements | grep -i warning

    The table below compares and contrasts the two ways of searching.

    Feature --filter grep Regular expressions Yes, with ~= Yes Word-wrapped field data Searched correctly Might cause false negative Search just one field Yes Might get false positives Search multiple fields Yes, with ||/&& Yes (line-based searching) Searching hides header No Yes (unless it matches)"},{"location":"repl/","title":"REPL (a custom shell for Drupal)","text":"

    The php:cli command is interactive PHP REPL with your bootstrapped site (remote or local). It\u2019s a Drupal code playground. You can do quick code experimentation, grab some data, or run Drush commands. This can also help with debugging certain issues. See this blog post for an introduction. Run help for a list of commands.

    Any global PsySH configuration is loaded by Drush. If you prefer a config file that is specific to the project (and can be checked in with other source code), set the environment variable PSYSH_CONFIG=</path/to/config-file>. This file then takes precedence over any global file.

    Entity classes are available without their namespace. For example, Node::load() works instead of Drupal\\Node\\entity\\Noad::load().

    "},{"location":"site-alias-manager/","title":"Site Alias Manager","text":"

    The Site Alias Manager (SAM) service is used to retrieve information about one or all of the site aliases for the current installation.

    "},{"location":"site-aliases/","title":"Site aliases","text":""},{"location":"site-aliases/#basic-usage","title":"Basic usage","text":"

    In its most basic form, the Drush site alias feature provides a way for teams to share short names that refer to the live and staging sites (usually remote) for a given Drupal site.

    Add an alias file called $PROJECT/drush/sites/self.site.yml, where $PROJECT is the project root (location of composer.json file). The site alias file should be named self.site.yml because this name is special, and is used to define the different environments (usually remote) of the current Drupal site.

    The contents of the alias file should look something like the example below:

    # File: self.site.yml\nlive:\n  host: server.domain.com\n  user: www-admin\n  root: /other/path/to/live/drupal\n  uri: http://example.com\nstage:\n  host: server.domain.com\n  user: www-admin\n  root: /other/path/to/stage/drupal\n  uri: http://stage.example.com\n

    The top-level element names (live and stage in the example above) are used to identify the different environments available for this site. These may be used on the command line to select a different target environment to operate on by prepending an @ character, e.g. @live or @stage.

    Following these steps, a cache:rebuild on the live environment would be:

      $ drush @live cache:rebuild\n

    All of the available aliases for a site's environments may be listed via:

      $ drush site:alias @self\n

    The elements of a site alias are:

    Drush typically uses ssh to run commands on remote systems; all team members should install ssh keys on the target servers (e.g. via ssh-add).

    "},{"location":"site-aliases/#advanced-usage","title":"Advanced usage","text":"

    It is also possible to create site alias files that reference other sites on the same local system. Site alias files for other local sites are usually stored in the directory ~/.drush/sites; however, Drush does not search this location for alias files by default. To use this location, you must add the path in your Drush configuration file. For example, to re-add both of the default user alias path from Drush 8, put the following in your ~/.drush/drush.yml configuration file:

    drush:\n  paths:\n    alias-path:\n      - '${env.HOME}/.drush/sites'\n      - /etc/drush/sites\n

    A canonical alias named example that points to a local Drupal site named at http://example.com like this:

    # File: example.site.yml\ndev:\n  root: /path/to/drupal\n  uri: http://example.com\n

    Note that the first part of the filename (in this case example defines the name of the site alias, and the top-level key dev defines the name of the environment.

    With these definitions in place, it is possible to run commands targeting the dev environment of the target site via:

      $ drush @example.dev status\n
    This command is equivalent to the longer form:
      $ drush --root=/path/to/drupal --uri=http://example.com status\n
    See Additional Site Alias Options for more information.

    "},{"location":"site-aliases/#altering-aliases","title":"Altering aliases:","text":"

    See examples/Commands/SiteAliasAlterCommands.php) for an example.

    "},{"location":"site-aliases/#site-specifications","title":"Site specifications:","text":"

    When a site alias name is provided on the command line, a site specification may be used instead. A site specification is a site alias that is not saved on the filesystem but instead is provided directly e.g. drush user@server/path/to/drupal#uri core:status. See example site specifications.

    "},{"location":"site-aliases/#environment-variables","title":"Environment variables","text":"

    Site aliases may reference environment variables, just like any Drush config file. For example, ${env.PROJECT_SSH_USER} will be replaced by the value of the PROJECT_SSH_USER environment value.

    SSH site aliases may set environment variables via the env-vars key. See below.

    "},{"location":"site-aliases/#additional-site-alias-options","title":"Additional Site Alias Options","text":"

    Aliases are commonly used to define short names for local or remote Drupal installations; however, an alias is really nothing more than a collection of options.

    Complex example:

    # File: remote.site.yml\nlive:\n  host: server.domain.com\n  user: www-admin\n  root: /other/path/to/drupal\n  uri: http://example.com\n  ssh:\n    options: '-p 100'\n  paths:\n    drush-script: '/path/to/drush'\n  env-vars:\n    PATH: /bin:/usr/bin:/home/www-admin/.composer/vendor/bin\n    DRUPAL_ENV: live\n  command:\n    site:\n      install:\n        options:\n          admin-password: 'secret-secret'\n
    "},{"location":"site-aliases/#site-alias-files-for-service-providers","title":"Site Alias Files for Service Providers","text":"

    There are a number of service providers that manage Drupal sites as a service. Drush allows service providers to create collections of site alias files to reference all of the sites available to a single user. In order to do this, a new location must be defined in your Drush configuration file:

    drush:\n  paths:\n    alias-path:\n      - '${env.HOME}/.drush/sites/provider-name'\n

    Site aliases stored in this directory may then be referenced by its full alias name, including its location, e.g.:

      $ drush @provider-name.example.dev\n
    Such alias files may still be referenced by their shorter name, e.g. @example.dev. Note that it is necessary to individually list every location where site alias files may be stored; Drush never does recursive (deep) directory searches for alias files.

    The site:alias command may also be used to list all of the sites and environments in a given location, e.g.:

      $ drush site:alias @provider-name\n
    Add the option --format=list to show only the names of each site and environment without also showing the values in each alias record.

    "},{"location":"site-aliases/#wildcard-aliases-for-service-providers","title":"Wildcard Aliases for Service Providers","text":"

    Some service providers that manage Drupal sites allow customers to create multiple \"environments\" for a site. It is common for these providers to also have a feature to automatically create Drush aliases for all of a user's sites. Rather than write one record for every environment in that site, it is also possible to write a single wildcard alias that represents all possible environments. This is possible if the contents of each environment alias are identical save for the name of the environment in one or more values. The variable ${env-name} will be substituted with the environment name wherever it appears.

    Example wildcard record:

    # File: remote-example.site.yml\n'*':\n  host: ${env-name}.server.domain.com\n  user: www-admin\n  root: /path/to/${env-name}\n  uri: http://${env-name}.remote-example.com\n

    With a wildcard record, any environment name may be used, and will always match. This is not desirable in instances where the specified environment does not exist (e.g. if the user made a typo). An alias alter hook in a policy file may be used to catch these mistakes and report an error. See SiteAliasAlterCommands for an example on how to do this.

    "},{"location":"site-aliases/#docker-compose-and-other-transports","title":"Docker Compose and other transports","text":"

    The example below shows drush calling into a Docker hosted site. See the https://github.com/consolidation/site-alias and https://github.com/consolidation/site-process projects for more developer information about transports.

    An example appears below. Edit to suit:

    # File: mysite.site.yml\nlocal:\nThis environment is an example of the DockerCompose transport.\n  docker:\n    service: drupal\n    exec:\n      options: --user USER\nstage:\n  uri: http://stage.example.com\n  root: /path/to/remote/drupal/root\n  host: mystagingserver.myisp.com\n  user: publisher\n  os: Linux\n  paths:\n   - files: sites/mydrupalsite.com/files\n   - custom: /my/custom/path\n  command:\n    sql:\n      sync:\n        options:\n          no-dump: true\ndev:\n  root: /path/to/docroot\n  uri: https://dev.example.com\n
    "},{"location":"site-aliases/#example-of-rsync-with-exclude-paths","title":"Example of rsync with exclude-paths","text":"

    Note that most options typically passed to rsync via drush rsync are \"passthrough options\", which is to say they appear after the -- separator on the command line. Passthrough options are actually arguments, and it is not possible to set default arguments in an alias record. The drush rsync command does support two options, --mode and --exclude-paths, which are interpreted directly by Drush. Default values for these options may be specified in an alias record, as shown below.

    dev:\n  root: /path/to/docroot\n  uri: https://dev.example.com\n  command:\n    core:\n      rsync:\n        options:\n          mode: rlptz\n          exclude-paths: 'css:imagecache:ctools:js:tmp:php:styles'\n
    "},{"location":"usage/","title":"Usage","text":"

    Drush can be run in your shell by typing drush from within your project root directory or anywhere within Drupal.

    $ drush [options] <command> [argument1] [argument2]\n

    Use the help command to get a list of available options and commands:

    $ drush help pm:list\n

    For even more documentation, use the topic command:

    $ drush topic\n
    "},{"location":"usage/#using-the-uri-option-and-root-options","title":"Using the --uri option and --root options.","text":"

    For multi-site installations, use a site alias or the --uri option to target a particular site.

    $ drush --uri=http://example.com pm:install\n

    If you are outside the Composer project and not using a site alias, you need to specify --root and --uri for Drush to locate and bootstrap the right Drupal site.

    "},{"location":"usage/#site-aliases","title":"Site Aliases","text":"

    Drush lets you run commands on a remote server. Once defined, aliases can be referenced with the @ nomenclature, i.e.

    # Run pending updates on staging site.\n$ drush @staging updatedb\n# Synchronize staging files to production\n$ drush rsync @staging:%files/ @live:%files\n# Synchronize database from production to local, excluding the cache table\n$ drush sql:sync --structure-tables-key=custom @live @self\n

    See Site aliases for more information.

    "},{"location":"using-drush-configuration/","title":"Drush Configuration","text":"

    Drush configuration is useful to cut down on typing out lengthy and repetitive command line options, and to avoid mistakes.

    "},{"location":"using-drush-configuration/#directories-and-discovery","title":"Directories and Discovery","text":"

    drush.yml files are discovered as below, in order of precedence:

    1. Drupal site folder (e.g. sites/{example.com}/drush.yml).
    2. sites/all/drush, WEBROOT/drush, or PROJECTROOT/drush.
    3. In any location, as specified by the --config option.
    4. User's .drush folder (i.e. ~/.drush/drush.yml).
    5. System-wide configuration folder (e.g. /etc/drush/drush.yml or C:\\ProgramData\\Drush\\drush.yml).

    If a configuration file is found in any of the above locations, it will be loaded and merged with other configuration files in the search list. Run drush status --fields=drush-conf to see all discovered config files.

    "},{"location":"using-drush-configuration/#environment-variables","title":"Environment variables","text":"

    Your Drush config file may reference environment variables using a syntax like ${env.HOME}. For example see the drush.paths examples below.

    An alternative way to populate Drush configuration is to define environment variables that correspond to config keys. For example, to populate the options.uri config item, create an environment variable DRUSH_OPTIONS_URI=http://example.com. As you can see, variable names should be uppercased, prefixed with DRUSH_, and periods replaced with dashes.

    "},{"location":"using-drush-configuration/#config-examples","title":"Config examples","text":""},{"location":"using-drush-configuration/#specify-config-files-to-load","title":"Specify config files to load","text":"
    drush:\n  paths:\n    config:\n      # Load any personal config files. Is silently skipped if not found. Filename must be drush.yml\n      - ${env.HOME}/.drush/config/drush.yml\n
    "},{"location":"using-drush-configuration/#specify-folders-to-search-for-drush-command-files","title":"Specify folders to search for Drush command files.","text":"

    These locations are always merged with include paths defined on the command line or in other configuration files. On the command line, paths may be separated by a colon : on Unix-based systems or a semi-colon ; on Windows, or multiple --include options may be provided. Drush 8 and earlier did a deep search in ~/.drush and /usr/share/drush/commands when loading command files, so we mimic that here as an example.

    drush:\n  include:\n    - '${env.HOME}/.drush/commands'\n    - /usr/share/drush/commands\n
    "},{"location":"using-drush-configuration/#specify-the-folders-to-search-for-drush-alias-files-siteyml","title":"Specify the folders to search for Drush alias files (*.site.yml).","text":"

    These locations are always merged with alias paths defined on the command line or in other configuration files. On the command line, paths may be separated by a colon : on Unix-based systems or a semi-colon ; on Windows, or multiple --alias-path options may be provided. Note that Drush 8 and earlier did a deep search in ~/.drush and /etc/drush when loading alias files.

    drush:\n  paths:\n    alias-path:\n      - '${env.HOME}/.drush/sites'\n      - /etc/drush/sites\n
    - View all loaded site aliases: drush site:alias

    "},{"location":"using-drush-configuration/#backup-directory","title":"Backup directory","text":"

    Specify a folder where Drush should store backup files, including temporary sql dump files created during sql:sync. If unspecified, defaults to $HOME/drush-backups.

    drush:\n  paths:\n    backup-dir: /tmp/drush-backups\n

    "},{"location":"using-drush-configuration/#global-options","title":"Global options","text":"
    options:\n  # Specify the base_url that should be used when generating links.\n  uri: 'http://example.com/subdir'\n\n  # Specify your Drupal core base directory (useful if you use symlinks).\n  root: '/home/USER/workspace/drupal'\n\n  # Enable verbose mode.\n  verbose: true\n
    "},{"location":"using-drush-configuration/#command-specific-options","title":"Command-specific options","text":"
    command:\n  sql:\n    cli:\n      options:\n        # Enable auto-complete in MySQL.\n        extra: \"--auto-rehash\"\n    dump:\n      options:\n        # Omit cache and similar tables (including during a sql:sync).\n        structure-tables-key: common\n  php:\n    script:\n      options:\n        # Additional folders to search for scripts.\n        script-path: 'sites/all/scripts:profiles/myprofile/scripts'\n  core:\n    rsync:\n      options:\n        # Ensure all rsync commands use verbose output.\n        verbose: true\n\n  site:\n    install:\n      options:\n        # Set a predetermined username and password when using site:install.\n        account-name: 'alice'\n        account-pass: 'secret'\n
    "},{"location":"using-drush-configuration/#non-options","title":"Non-options","text":"
    sql:\n  # An explicit list of tables which should be included in sql-dump and sql-sync.\n  tables:\n    common:\n      - user\n      - permissions\n      - role_permissions\n      - role\n  # List of tables whose *data* is skipped by the 'sql-dump' and 'sql-sync'\n  # commands when the \"--structure-tables-key=common\" option is provided.\n  # You may add specific tables to the existing array or add a new element.\n  structure-tables:\n    common:\n      - cache\n      - 'cache_*'\n      - history\n      - 'search_*'\n      - 'sessions'\n      - 'watchdog'\n  # List of tables to be omitted entirely from SQL dumps made by the 'sql-dump'\n  # and 'sql-sync' commands when the \"--skip-tables-key=common\" option is\n  # provided on the command line.  This is useful if your database contains\n  # non-Drupal tables used by some other application or during a migration for\n  # example.  You may add new tables to the existing array or add a new element.\n  skip-tables:\n    common:\n      - 'migration_*'\n\nssh:\n  # Specify options to pass to ssh.  The default is to prohibit\n  # password authentication, and is included here, so you may add additional\n  # parameters without losing the default configuration.\n  options: '-o PasswordAuthentication=no'\n  # This string is valid for Bash shell. Override in case you need something different. See https://github.com/drush-ops/drush/issues/3816.\n  pipefail: 'set -o pipefail; '\n\nnotify:\n  # Notify when command takes more than 30 seconds.\n  duration: 30\n  # Specify a command to run. Defaults to Notification Center (OSX) or libnotify (Linux)\n  cmd: /path/to/program\n  # See https://github.com/drush-ops/drush/blob/12.x/src/Commands/core/NotifyCommands.php for more settings.\n\nxh:\n  # Start profiling via xhprof/tideways and show a link to the run report.\n  link: http://xhprof.local\n  # See https://github.com/drush-ops/drush/blob/12.x/src/Commands/core/XhprofCommands.php for more settings.\n  profile-builtins: true\n  profile-cpu: false\n  profile-memory: false\n
    "},{"location":"using-drush-configuration/#misc","title":"Misc","text":""},{"location":"commands/all/","title":"All commands","text":"

    Tip

    Press the / key to Search for a command. Or use your browser's Find in Page feature.

    "},{"location":"commands/archive_dump/","title":"archive:dump","text":"

    Backup your code, files, and database into a single file.

    The following paths would be excluded from a code archive:

    The following directories would be excluded from a file archive:

    "},{"location":"commands/archive_dump/#examples","title":"Examples","text":""},{"location":"commands/archive_dump/#options","title":"Options","text":""},{"location":"commands/archive_dump/#global-options","title":"Global Options","text":""},{"location":"commands/archive_dump/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/archive_restore/","title":"archive:restore","text":"

    Restore (import) your code, files, and database.

    "},{"location":"commands/archive_restore/#examples","title":"Examples","text":""},{"location":"commands/archive_restore/#arguments","title":"Arguments","text":""},{"location":"commands/archive_restore/#options","title":"Options","text":""},{"location":"commands/archive_restore/#global-options","title":"Global Options","text":""},{"location":"commands/archive_restore/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/browse/","title":"browse","text":"

    Display a link to a given path or open link in a browser.

    "},{"location":"commands/browse/#examples","title":"Examples","text":""},{"location":"commands/browse/#arguments","title":"Arguments","text":""},{"location":"commands/browse/#options","title":"Options","text":""},{"location":"commands/browse/#global-options","title":"Global Options","text":"

    Legend

    "},{"location":"commands/cache_clear/","title":"cache:clear","text":"

    Clear a specific cache, or all Drupal caches.

    "},{"location":"commands/cache_clear/#examples","title":"Examples","text":""},{"location":"commands/cache_clear/#arguments","title":"Arguments","text":""},{"location":"commands/cache_clear/#options","title":"Options","text":""},{"location":"commands/cache_clear/#global-options","title":"Global Options","text":""},{"location":"commands/cache_clear/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/cache_get/","title":"cache:get","text":"

    Fetch a cached object and display it.

    "},{"location":"commands/cache_get/#examples","title":"Examples","text":""},{"location":"commands/cache_get/#arguments","title":"Arguments","text":""},{"location":"commands/cache_get/#options","title":"Options","text":""},{"location":"commands/cache_get/#global-options","title":"Global Options","text":""},{"location":"commands/cache_get/#topics","title":"Topics","text":""},{"location":"commands/cache_get/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/cache_rebuild/","title":"cache:rebuild","text":"

    Rebuild all caches.

    This is a copy of core/rebuild.php.

    "},{"location":"commands/cache_rebuild/#options","title":"Options","text":""},{"location":"commands/cache_rebuild/#global-options","title":"Global Options","text":""},{"location":"commands/cache_rebuild/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/cache_set/","title":"cache:set","text":"

    Cache an object expressed in JSON or var_export() format.

    "},{"location":"commands/cache_set/#arguments","title":"Arguments","text":""},{"location":"commands/cache_set/#options","title":"Options","text":""},{"location":"commands/cache_set/#global-options","title":"Global Options","text":""},{"location":"commands/cache_set/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/cache_tags/","title":"cache:tags","text":"

    Invalidate by cache tags.

    "},{"location":"commands/cache_tags/#examples","title":"Examples","text":""},{"location":"commands/cache_tags/#arguments","title":"Arguments","text":""},{"location":"commands/cache_tags/#global-options","title":"Global Options","text":""},{"location":"commands/cache_tags/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/completion/","title":"completion","text":"

    Dump the shell completion script

    The *%command.name% command dumps the shell completion script required to use shell autocompletion (currently, bash, fish, zsh completion are supported).

    "},{"location":"commands/completion/#static-installation","title":"Static installation

    Dump the script to a global completion file and restart your shell:

    *%command.full_name%  | sudo tee /etc/bash_completion.d/drush\n

    Or dump the script to a local file and source it:

    *%command.full_name%  > completion.sh\n\n<comment># source the file whenever you use the project\n*source completion.sh\n\n<comment># or add this line at the end of your \"~/.bashrc\" file:\n*source /path/to/completion.sh\n
    ","text":""},{"location":"commands/completion/#dynamic-installation","title":"Dynamic installation

    Add this to the end of your shell configuration file (e.g. *\"~/.bashrc\"):

    *eval \"$(/home/runner/work/drush/drush/drush completion )\"\n
    ","text":""},{"location":"commands/completion/#arguments","title":"Arguments","text":""},{"location":"commands/completion/#options","title":"Options","text":""},{"location":"commands/completion/#global-options","title":"Global Options","text":"

    Legend

    "},{"location":"commands/config_delete/","title":"config:delete","text":"

    Delete a configuration key, or a whole object(s).

    "},{"location":"commands/config_delete/#examples","title":"Examples","text":""},{"location":"commands/config_delete/#arguments","title":"Arguments","text":""},{"location":"commands/config_delete/#global-options","title":"Global Options","text":""},{"location":"commands/config_delete/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/config_edit/","title":"config:edit","text":"

    Open a config file in a text editor. Edits are imported after closing editor.

    "},{"location":"commands/config_edit/#examples","title":"Examples","text":""},{"location":"commands/config_edit/#arguments","title":"Arguments","text":""},{"location":"commands/config_edit/#options","title":"Options","text":""},{"location":"commands/config_edit/#global-options","title":"Global Options","text":""},{"location":"commands/config_edit/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/config_export/","title":"config:export","text":"

    Export Drupal configuration to a directory.

    "},{"location":"commands/config_export/#examples","title":"Examples","text":""},{"location":"commands/config_export/#options","title":"Options","text":""},{"location":"commands/config_export/#global-options","title":"Global Options","text":""},{"location":"commands/config_export/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/config_get/","title":"config:get","text":"

    Display a config value, or a whole configuration object.

    "},{"location":"commands/config_get/#examples","title":"Examples","text":""},{"location":"commands/config_get/#arguments","title":"Arguments","text":""},{"location":"commands/config_get/#options","title":"Options","text":""},{"location":"commands/config_get/#global-options","title":"Global Options","text":""},{"location":"commands/config_get/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/config_import/","title":"config:import","text":"

    Import config from the config directory.

    "},{"location":"commands/config_import/#examples","title":"Examples","text":""},{"location":"commands/config_import/#options","title":"Options","text":""},{"location":"commands/config_import/#global-options","title":"Global Options","text":""},{"location":"commands/config_import/#topics","title":"Topics","text":""},{"location":"commands/config_import/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/config_pull/","title":"config:pull","text":"

    Export and transfer config from one environment to another.

    "},{"location":"commands/config_pull/#examples","title":"Examples","text":""},{"location":"commands/config_pull/#arguments","title":"Arguments","text":""},{"location":"commands/config_pull/#options","title":"Options","text":""},{"location":"commands/config_pull/#global-options","title":"Global Options","text":""},{"location":"commands/config_pull/#topics","title":"Topics","text":""},{"location":"commands/config_pull/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/config_set/","title":"config:set","text":"

    Save a config value directly. Does not perform a config import.

    "},{"location":"commands/config_set/#examples","title":"Examples","text":""},{"location":"commands/config_set/#arguments","title":"Arguments","text":""},{"location":"commands/config_set/#options","title":"Options","text":""},{"location":"commands/config_set/#global-options","title":"Global Options","text":""},{"location":"commands/config_set/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/config_status/","title":"config:status","text":"

    Display status of configuration (differences between the filesystem configuration and database configuration).

    "},{"location":"commands/config_status/#examples","title":"Examples","text":""},{"location":"commands/config_status/#options","title":"Options","text":""},{"location":"commands/config_status/#global-options","title":"Global Options","text":""},{"location":"commands/config_status/#topics","title":"Topics","text":""},{"location":"commands/config_status/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/core_cron/","title":"core:cron","text":"

    Run all cron hooks in all active modules for specified site.

    "},{"location":"commands/core_cron/#examples","title":"Examples","text":""},{"location":"commands/core_cron/#global-options","title":"Global Options","text":""},{"location":"commands/core_cron/#topics","title":"Topics","text":""},{"location":"commands/core_cron/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/core_edit/","title":"core:edit","text":"

    Edit drush.yml, site alias, and Drupal settings.php files.

    "},{"location":"commands/core_edit/#examples","title":"Examples","text":""},{"location":"commands/core_edit/#arguments","title":"Arguments","text":""},{"location":"commands/core_edit/#options","title":"Options","text":""},{"location":"commands/core_edit/#global-options","title":"Global Options","text":""},{"location":"commands/core_edit/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/core_requirements/","title":"core:requirements","text":"

    Information about things that may be wrong in your Drupal installation.

    "},{"location":"commands/core_requirements/#examples","title":"Examples","text":""},{"location":"commands/core_requirements/#options","title":"Options","text":""},{"location":"commands/core_requirements/#global-options","title":"Global Options","text":""},{"location":"commands/core_requirements/#topics","title":"Topics","text":""},{"location":"commands/core_requirements/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/core_route/","title":"core:route","text":"

    10.5+

    View information about all routes or one route.

    "},{"location":"commands/core_route/#examples","title":"Examples","text":""},{"location":"commands/core_route/#options","title":"Options","text":""},{"location":"commands/core_route/#global-options","title":"Global Options","text":""},{"location":"commands/core_route/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/core_rsync/","title":"core:rsync","text":"

    Rsync Drupal code or files to/from another server using ssh.

    "},{"location":"commands/core_rsync/#examples","title":"Examples","text":""},{"location":"commands/core_rsync/#arguments","title":"Arguments","text":""},{"location":"commands/core_rsync/#options","title":"Options","text":""},{"location":"commands/core_rsync/#global-options","title":"Global Options","text":""},{"location":"commands/core_rsync/#topics","title":"Topics","text":""},{"location":"commands/core_rsync/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/core_status/","title":"core:status","text":"

    An overview of the environment - Drush and Drupal.

    "},{"location":"commands/core_status/#examples","title":"Examples","text":""},{"location":"commands/core_status/#options","title":"Options","text":""},{"location":"commands/core_status/#global-options","title":"Global Options","text":""},{"location":"commands/core_status/#topics","title":"Topics","text":""},{"location":"commands/core_status/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/core_topic/","title":"core:topic","text":"

    Read detailed documentation on a given topic.

    "},{"location":"commands/core_topic/#examples","title":"Examples","text":""},{"location":"commands/core_topic/#arguments","title":"Arguments","text":""},{"location":"commands/core_topic/#global-options","title":"Global Options","text":""},{"location":"commands/core_topic/#topics","title":"Topics","text":""},{"location":"commands/core_topic/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/deploy/","title":"deploy","text":"

    10.3+

    Run several commands after performing a code deployment.

    "},{"location":"commands/deploy/#examples","title":"Examples","text":""},{"location":"commands/deploy/#global-options","title":"Global Options","text":""},{"location":"commands/deploy/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/deploy_hook-status/","title":"deploy:hook-status","text":"

    Prints information about pending deploy update hooks.

    "},{"location":"commands/deploy_hook-status/#examples","title":"Examples","text":""},{"location":"commands/deploy_hook-status/#options","title":"Options","text":""},{"location":"commands/deploy_hook-status/#global-options","title":"Global Options","text":""},{"location":"commands/deploy_hook-status/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/deploy_hook/","title":"deploy:hook","text":"

    10.3+

    Run pending deploy update hooks.

    "},{"location":"commands/deploy_hook/#examples","title":"Examples","text":""},{"location":"commands/deploy_hook/#global-options","title":"Global Options","text":""},{"location":"commands/deploy_hook/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/deploy_mark-complete/","title":"deploy:mark-complete","text":"

    10.6.1+

    Mark all deploy hooks as having run.

    "},{"location":"commands/deploy_mark-complete/#examples","title":"Examples","text":""},{"location":"commands/deploy_mark-complete/#global-options","title":"Global Options","text":""},{"location":"commands/deploy_mark-complete/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/drupal_directory/","title":"drupal:directory","text":"

    Return the filesystem path for modules/themes and other key folders.

    "},{"location":"commands/drupal_directory/#examples","title":"Examples","text":""},{"location":"commands/drupal_directory/#arguments","title":"Arguments","text":""},{"location":"commands/drupal_directory/#options","title":"Options","text":""},{"location":"commands/drupal_directory/#global-options","title":"Global Options","text":""},{"location":"commands/drupal_directory/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/entity_delete/","title":"entity:delete","text":"

    Delete content entities.

    To delete configuration entities, see config:delete command.

    "},{"location":"commands/entity_delete/#examples","title":"Examples","text":""},{"location":"commands/entity_delete/#arguments","title":"Arguments","text":""},{"location":"commands/entity_delete/#options","title":"Options","text":""},{"location":"commands/entity_delete/#global-options","title":"Global Options","text":""},{"location":"commands/entity_delete/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/entity_save/","title":"entity:save","text":"

    11.0+

    Load and save entities.

    "},{"location":"commands/entity_save/#examples","title":"Examples","text":""},{"location":"commands/entity_save/#arguments","title":"Arguments","text":""},{"location":"commands/entity_save/#options","title":"Options","text":""},{"location":"commands/entity_save/#global-options","title":"Global Options","text":""},{"location":"commands/entity_save/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/field_base-info/","title":"field:base-info","text":"

    11.0+

    List all base fields of an entity type

    "},{"location":"commands/field_base-info/#examples","title":"Examples","text":""},{"location":"commands/field_base-info/#arguments","title":"Arguments","text":""},{"location":"commands/field_base-info/#options","title":"Options","text":""},{"location":"commands/field_base-info/#global-options","title":"Global Options","text":""},{"location":"commands/field_base-info/#topics","title":"Topics","text":""},{"location":"commands/field_base-info/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/field_base-override-create/","title":"field:base-override-create","text":"

    11.0+

    Create a new base field override

    "},{"location":"commands/field_base-override-create/#examples","title":"Examples","text":""},{"location":"commands/field_base-override-create/#arguments","title":"Arguments","text":""},{"location":"commands/field_base-override-create/#options","title":"Options","text":""},{"location":"commands/field_base-override-create/#global-options","title":"Global Options","text":""},{"location":"commands/field_base-override-create/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/field_create/","title":"field:create","text":"

    11.0+

    Create a new field

    "},{"location":"commands/field_create/#examples","title":"Examples","text":""},{"location":"commands/field_create/#arguments","title":"Arguments","text":""},{"location":"commands/field_create/#options","title":"Options","text":""},{"location":"commands/field_create/#global-options","title":"Global Options","text":""},{"location":"commands/field_create/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/field_delete/","title":"field:delete","text":"

    11.0+

    Delete a field

    "},{"location":"commands/field_delete/#examples","title":"Examples","text":""},{"location":"commands/field_delete/#arguments","title":"Arguments","text":""},{"location":"commands/field_delete/#options","title":"Options","text":""},{"location":"commands/field_delete/#global-options","title":"Global Options","text":""},{"location":"commands/field_delete/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/field_formatters/","title":"field:formatters","text":"

    Lists field formatters.

    "},{"location":"commands/field_formatters/#examples","title":"Examples","text":""},{"location":"commands/field_formatters/#options","title":"Options","text":""},{"location":"commands/field_formatters/#global-options","title":"Global Options","text":""},{"location":"commands/field_formatters/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/field_info/","title":"field:info","text":"

    11.0+

    List all configurable fields of an entity bundle

    "},{"location":"commands/field_info/#examples","title":"Examples","text":""},{"location":"commands/field_info/#arguments","title":"Arguments","text":""},{"location":"commands/field_info/#options","title":"Options","text":""},{"location":"commands/field_info/#global-options","title":"Global Options","text":""},{"location":"commands/field_info/#topics","title":"Topics","text":""},{"location":"commands/field_info/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/field_types/","title":"field:types","text":"

    Lists field types.

    "},{"location":"commands/field_types/#examples","title":"Examples","text":""},{"location":"commands/field_types/#options","title":"Options","text":""},{"location":"commands/field_types/#global-options","title":"Global Options","text":""},{"location":"commands/field_types/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/field_widgets/","title":"field:widgets","text":"

    Lists field widgets.

    "},{"location":"commands/field_widgets/#examples","title":"Examples","text":""},{"location":"commands/field_widgets/#options","title":"Options","text":""},{"location":"commands/field_widgets/#global-options","title":"Global Options","text":""},{"location":"commands/field_widgets/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/generate/","title":"generate","text":"

    Generate boilerplate code for modules/plugins/services etc.

    Drush asks questions so that the generated code is as polished as possible. After generating, Drush lists the files that were created.

    See https://github.com/Chi-teck/drupal-code-generator for a README and bug reports.

    "},{"location":"commands/generate/#examples","title":"Examples","text":""},{"location":"commands/generate/#arguments","title":"Arguments","text":""},{"location":"commands/generate/#options","title":"Options","text":""},{"location":"commands/generate/#global-options","title":"Global Options","text":""},{"location":"commands/generate/#topics","title":"Topics","text":""},{"location":"commands/generate/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/help/","title":"help","text":"

    Display usage details for a command.

    "},{"location":"commands/help/#examples","title":"Examples","text":""},{"location":"commands/help/#arguments","title":"Arguments","text":""},{"location":"commands/help/#options","title":"Options","text":""},{"location":"commands/help/#global-options","title":"Global Options","text":""},{"location":"commands/help/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/image_derive/","title":"image:derive","text":"

    Create an image derivative.

    "},{"location":"commands/image_derive/#examples","title":"Examples","text":""},{"location":"commands/image_derive/#arguments","title":"Arguments","text":""},{"location":"commands/image_derive/#global-options","title":"Global Options","text":""},{"location":"commands/image_derive/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/image_flush/","title":"image:flush","text":"

    Flush all derived images for a given style.

    "},{"location":"commands/image_flush/#examples","title":"Examples","text":""},{"location":"commands/image_flush/#arguments","title":"Arguments","text":""},{"location":"commands/image_flush/#options","title":"Options","text":""},{"location":"commands/image_flush/#global-options","title":"Global Options","text":""},{"location":"commands/image_flush/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/jn_get/","title":"jn:get","text":"

    Execute a JSONAPI request.

    "},{"location":"commands/jn_get/#examples","title":"Examples","text":""},{"location":"commands/jn_get/#arguments","title":"Arguments","text":""},{"location":"commands/jn_get/#options","title":"Options","text":""},{"location":"commands/jn_get/#global-options","title":"Global Options","text":"

    Legend

    "},{"location":"commands/list/","title":"list","text":"

    List available commands.

    "},{"location":"commands/list/#examples","title":"Examples","text":""},{"location":"commands/list/#options","title":"Options","text":""},{"location":"commands/list/#global-options","title":"Global Options","text":"

    Legend

    "},{"location":"commands/locale_check/","title":"locale:check","text":"

    Checks for available translation updates.

    "},{"location":"commands/locale_check/#global-options","title":"Global Options","text":""},{"location":"commands/locale_check/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/locale_clear-status/","title":"locale:clear-status","text":"

    11.5+

    Clears the translation status.

    "},{"location":"commands/locale_clear-status/#global-options","title":"Global Options","text":""},{"location":"commands/locale_clear-status/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/locale_export/","title":"locale:export","text":"

    Exports to a gettext translation file.

    See Drupal Core: \\Drupal\\locale\\Form\\ExportForm::submitForm

    "},{"location":"commands/locale_export/#examples","title":"Examples","text":""},{"location":"commands/locale_export/#arguments","title":"Arguments","text":""},{"location":"commands/locale_export/#options","title":"Options","text":""},{"location":"commands/locale_export/#global-options","title":"Global Options","text":""},{"location":"commands/locale_export/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/locale_import-all/","title":"locale:import-all","text":"

    12.2+

    Imports multiple translation files from the defined directory.

    "},{"location":"commands/locale_import-all/#examples","title":"Examples","text":""},{"location":"commands/locale_import-all/#arguments","title":"Arguments","text":""},{"location":"commands/locale_import-all/#options","title":"Options","text":""},{"location":"commands/locale_import-all/#global-options","title":"Global Options","text":""},{"location":"commands/locale_import-all/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/locale_import/","title":"locale:import","text":"

    Imports to a gettext translation file.

    "},{"location":"commands/locale_import/#examples","title":"Examples","text":""},{"location":"commands/locale_import/#arguments","title":"Arguments","text":""},{"location":"commands/locale_import/#options","title":"Options","text":""},{"location":"commands/locale_import/#global-options","title":"Global Options","text":""},{"location":"commands/locale_import/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/locale_update/","title":"locale:update","text":"

    Imports the available translation updates.

    "},{"location":"commands/locale_update/#options","title":"Options","text":""},{"location":"commands/locale_update/#global-options","title":"Global Options","text":""},{"location":"commands/locale_update/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/maint_get/","title":"maint:get","text":"

    11.5+

    Get maintenance mode. Returns 1 if enabled, 0 if not.

    Consider using maint:status instead when chaining commands.

    "},{"location":"commands/maint_get/#examples","title":"Examples","text":""},{"location":"commands/maint_get/#global-options","title":"Global Options","text":""},{"location":"commands/maint_get/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/maint_set/","title":"maint:set","text":"

    11.5+

    Set maintenance mode.

    "},{"location":"commands/maint_set/#examples","title":"Examples","text":""},{"location":"commands/maint_set/#arguments","title":"Arguments","text":""},{"location":"commands/maint_set/#global-options","title":"Global Options","text":""},{"location":"commands/maint_set/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/maint_status/","title":"maint:status","text":"

    11.5+

    Fail if maintenance mode is enabled.

    This commands fails with exit code of 3 when maintenance mode is on. This special exit code distinguishes from a failure to complete.

    "},{"location":"commands/maint_status/#examples","title":"Examples","text":""},{"location":"commands/maint_status/#global-options","title":"Global Options","text":""},{"location":"commands/maint_status/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/migrate_fields-source/","title":"migrate:fields-source","text":"

    10.4+

    List the fields available for mapping in a source.

    "},{"location":"commands/migrate_fields-source/#examples","title":"Examples","text":""},{"location":"commands/migrate_fields-source/#arguments","title":"Arguments","text":""},{"location":"commands/migrate_fields-source/#options","title":"Options","text":""},{"location":"commands/migrate_fields-source/#global-options","title":"Global Options","text":""},{"location":"commands/migrate_fields-source/#topics","title":"Topics","text":""},{"location":"commands/migrate_fields-source/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/migrate_import/","title":"migrate:import","text":"

    10.4+

    Perform one or more migration processes.

    "},{"location":"commands/migrate_import/#examples","title":"Examples","text":""},{"location":"commands/migrate_import/#arguments","title":"Arguments","text":""},{"location":"commands/migrate_import/#options","title":"Options","text":""},{"location":"commands/migrate_import/#global-options","title":"Global Options","text":""},{"location":"commands/migrate_import/#topics","title":"Topics","text":""},{"location":"commands/migrate_import/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/migrate_messages/","title":"migrate:messages","text":"

    10.4+

    View any messages associated with a migration.

    "},{"location":"commands/migrate_messages/#examples","title":"Examples","text":""},{"location":"commands/migrate_messages/#arguments","title":"Arguments","text":""},{"location":"commands/migrate_messages/#options","title":"Options","text":""},{"location":"commands/migrate_messages/#global-options","title":"Global Options","text":""},{"location":"commands/migrate_messages/#topics","title":"Topics","text":""},{"location":"commands/migrate_messages/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/migrate_reset-status/","title":"migrate:reset-status","text":"

    10.4+

    Reset an active migration's status to idle.

    "},{"location":"commands/migrate_reset-status/#arguments","title":"Arguments","text":""},{"location":"commands/migrate_reset-status/#global-options","title":"Global Options","text":""},{"location":"commands/migrate_reset-status/#topics","title":"Topics","text":""},{"location":"commands/migrate_reset-status/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/migrate_rollback/","title":"migrate:rollback","text":"

    10.4+

    Rollback one or more migrations.

    "},{"location":"commands/migrate_rollback/#examples","title":"Examples","text":""},{"location":"commands/migrate_rollback/#arguments","title":"Arguments","text":""},{"location":"commands/migrate_rollback/#options","title":"Options","text":""},{"location":"commands/migrate_rollback/#global-options","title":"Global Options","text":""},{"location":"commands/migrate_rollback/#topics","title":"Topics","text":""},{"location":"commands/migrate_rollback/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/migrate_status/","title":"migrate:status","text":"

    10.4+

    List all migrations with current status.

    "},{"location":"commands/migrate_status/#examples","title":"Examples","text":""},{"location":"commands/migrate_status/#arguments","title":"Arguments","text":""},{"location":"commands/migrate_status/#options","title":"Options","text":""},{"location":"commands/migrate_status/#global-options","title":"Global Options","text":""},{"location":"commands/migrate_status/#topics","title":"Topics","text":""},{"location":"commands/migrate_status/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/migrate_stop/","title":"migrate:stop","text":"

    10.4+

    Stop an active migration operation.

    "},{"location":"commands/migrate_stop/#arguments","title":"Arguments","text":""},{"location":"commands/migrate_stop/#global-options","title":"Global Options","text":""},{"location":"commands/migrate_stop/#topics","title":"Topics","text":""},{"location":"commands/migrate_stop/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/mk_docs/","title":"mk:docs","text":"

    Build a Markdown document for each Drush command/generator that is available on a site.

    This command is an early step when building the www.drush.org static site. Adapt it to build a similar site listing the commands that are available on your site. Also see Drush's Github Actions workflow.

    "},{"location":"commands/mk_docs/#examples","title":"Examples","text":""},{"location":"commands/mk_docs/#arguments","title":"Arguments","text":""},{"location":"commands/mk_docs/#global-options","title":"Global Options","text":"

    Legend

    "},{"location":"commands/php_cli/","title":"php:cli","text":"

    Open an interactive shell on a Drupal site.

    "},{"location":"commands/php_cli/#examples","title":"Examples","text":""},{"location":"commands/php_cli/#options","title":"Options","text":""},{"location":"commands/php_cli/#global-options","title":"Global Options","text":""},{"location":"commands/php_cli/#topics","title":"Topics","text":""},{"location":"commands/php_cli/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/php_eval/","title":"php:eval","text":"

    Evaluate arbitrary php code after bootstrapping Drupal (if available).

    "},{"location":"commands/php_eval/#examples","title":"Examples","text":""},{"location":"commands/php_eval/#arguments","title":"Arguments","text":""},{"location":"commands/php_eval/#options","title":"Options","text":""},{"location":"commands/php_eval/#global-options","title":"Global Options","text":""},{"location":"commands/php_eval/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/php_script/","title":"php:script","text":"

    Run php a script after a full Drupal bootstrap.

    A useful alternative to eval command when your php is lengthy or you can't be bothered to figure out bash quoting. If you plan to share a script with others, consider making a full Drush command instead, since that's more self-documenting. Drush provides commandline options to the script via a variable called $extra.

    "},{"location":"commands/php_script/#examples","title":"Examples","text":""},{"location":"commands/php_script/#arguments","title":"Arguments","text":""},{"location":"commands/php_script/#options","title":"Options","text":""},{"location":"commands/php_script/#global-options","title":"Global Options","text":""},{"location":"commands/php_script/#topics","title":"Topics","text":""},{"location":"commands/php_script/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/pm_install/","title":"pm:install","text":"

    Enable one or more modules.

    "},{"location":"commands/pm_install/#examples","title":"Examples","text":""},{"location":"commands/pm_install/#arguments","title":"Arguments","text":""},{"location":"commands/pm_install/#global-options","title":"Global Options","text":""},{"location":"commands/pm_install/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/pm_list/","title":"pm:list","text":"

    Show a list of available extensions (modules and themes).

    "},{"location":"commands/pm_list/#options","title":"Options","text":""},{"location":"commands/pm_list/#global-options","title":"Global Options","text":""},{"location":"commands/pm_list/#topics","title":"Topics","text":""},{"location":"commands/pm_list/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/pm_security/","title":"pm:security","text":"

    Check Drupal Composer packages for pending security updates.

    This uses the Drupal security advisories package to determine if updates are available. An exit code of 3 indicates that the check completed, and insecure packages were found.

    "},{"location":"commands/pm_security/#examples","title":"Examples","text":""},{"location":"commands/pm_security/#options","title":"Options","text":""},{"location":"commands/pm_security/#global-options","title":"Global Options","text":""},{"location":"commands/pm_security/#topics","title":"Topics","text":""},{"location":"commands/pm_security/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/pm_uninstall/","title":"pm:uninstall","text":"

    Uninstall one or more modules and their dependent modules.

    "},{"location":"commands/pm_uninstall/#examples","title":"Examples","text":""},{"location":"commands/pm_uninstall/#arguments","title":"Arguments","text":""},{"location":"commands/pm_uninstall/#global-options","title":"Global Options","text":""},{"location":"commands/pm_uninstall/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/queue_delete/","title":"queue:delete","text":"

    Delete all items in a specific queue.

    "},{"location":"commands/queue_delete/#arguments","title":"Arguments","text":""},{"location":"commands/queue_delete/#global-options","title":"Global Options","text":""},{"location":"commands/queue_delete/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/queue_list/","title":"queue:list","text":"

    Returns a list of all defined queues.

    "},{"location":"commands/queue_list/#options","title":"Options","text":""},{"location":"commands/queue_list/#global-options","title":"Global Options","text":""},{"location":"commands/queue_list/#topics","title":"Topics","text":""},{"location":"commands/queue_list/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/queue_run/","title":"queue:run","text":"

    Run a specific queue by name.

    "},{"location":"commands/queue_run/#arguments","title":"Arguments","text":""},{"location":"commands/queue_run/#options","title":"Options","text":""},{"location":"commands/queue_run/#global-options","title":"Global Options","text":""},{"location":"commands/queue_run/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/role_create/","title":"role:create","text":"

    Create a new role.

    "},{"location":"commands/role_create/#examples","title":"Examples","text":""},{"location":"commands/role_create/#arguments","title":"Arguments","text":""},{"location":"commands/role_create/#global-options","title":"Global Options","text":""},{"location":"commands/role_create/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/role_delete/","title":"role:delete","text":"

    Delete a role.

    "},{"location":"commands/role_delete/#examples","title":"Examples","text":""},{"location":"commands/role_delete/#arguments","title":"Arguments","text":""},{"location":"commands/role_delete/#global-options","title":"Global Options","text":""},{"location":"commands/role_delete/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/role_list/","title":"role:list","text":"

    Display a list of all roles defined on the system.

    If a role name is provided as an argument, then all of the permissions of that role will be listed. If a permission name is provided as an option, then all of the roles that have been granted that permission will be listed.

    "},{"location":"commands/role_list/#examples","title":"Examples","text":""},{"location":"commands/role_list/#options","title":"Options","text":""},{"location":"commands/role_list/#global-options","title":"Global Options","text":""},{"location":"commands/role_list/#topics","title":"Topics","text":""},{"location":"commands/role_list/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/role_perm_add/","title":"role:perm:add","text":"

    Grant specified permission(s) to a role.

    "},{"location":"commands/role_perm_add/#examples","title":"Examples","text":""},{"location":"commands/role_perm_add/#arguments","title":"Arguments","text":""},{"location":"commands/role_perm_add/#global-options","title":"Global Options","text":""},{"location":"commands/role_perm_add/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/role_perm_remove/","title":"role:perm:remove","text":"

    Remove specified permission(s) from a role.

    "},{"location":"commands/role_perm_remove/#examples","title":"Examples","text":""},{"location":"commands/role_perm_remove/#arguments","title":"Arguments","text":""},{"location":"commands/role_perm_remove/#global-options","title":"Global Options","text":""},{"location":"commands/role_perm_remove/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/runserver/","title":"runserver","text":"

    Runs PHP's built-in http server for development.

    "},{"location":"commands/runserver/#examples","title":"Examples","text":""},{"location":"commands/runserver/#arguments","title":"Arguments","text":""},{"location":"commands/runserver/#options","title":"Options","text":""},{"location":"commands/runserver/#global-options","title":"Global Options","text":""},{"location":"commands/runserver/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/site_alias/","title":"site:alias","text":"

    Show site alias details, or a list of available site aliases.

    "},{"location":"commands/site_alias/#examples","title":"Examples","text":""},{"location":"commands/site_alias/#arguments","title":"Arguments","text":""},{"location":"commands/site_alias/#options","title":"Options","text":""},{"location":"commands/site_alias/#global-options","title":"Global Options","text":""},{"location":"commands/site_alias/#topics","title":"Topics","text":""},{"location":"commands/site_alias/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/site_install/","title":"site:install","text":"

    Install Drupal along with modules/themes/configuration/profile.

    "},{"location":"commands/site_install/#examples","title":"Examples","text":""},{"location":"commands/site_install/#arguments","title":"Arguments","text":""},{"location":"commands/site_install/#options","title":"Options","text":""},{"location":"commands/site_install/#global-options","title":"Global Options","text":""},{"location":"commands/site_install/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/site_set/","title":"site:set","text":"

    Set a site alias that will persist for the current session.

    Stores the site alias being used in the current session in a temporary file.

    "},{"location":"commands/site_set/#examples","title":"Examples","text":""},{"location":"commands/site_set/#arguments","title":"Arguments","text":""},{"location":"commands/site_set/#global-options","title":"Global Options","text":""},{"location":"commands/site_set/#topics","title":"Topics","text":""},{"location":"commands/site_set/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/site_ssh/","title":"site:ssh","text":"

    Connect to a webserver via SSH, and optionally run a shell command.

    "},{"location":"commands/site_ssh/#examples","title":"Examples","text":""},{"location":"commands/site_ssh/#arguments","title":"Arguments","text":""},{"location":"commands/site_ssh/#options","title":"Options","text":""},{"location":"commands/site_ssh/#global-options","title":"Global Options","text":""},{"location":"commands/site_ssh/#topics","title":"Topics","text":""},{"location":"commands/site_ssh/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_cli/","title":"sql:cli","text":"

    Open a SQL command-line interface using Drupal's credentials.

    "},{"location":"commands/sql_cli/#examples","title":"Examples","text":""},{"location":"commands/sql_cli/#options","title":"Options","text":""},{"location":"commands/sql_cli/#global-options","title":"Global Options","text":""},{"location":"commands/sql_cli/#topics","title":"Topics","text":""},{"location":"commands/sql_cli/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_connect/","title":"sql:connect","text":"

    A string for connecting to the DB.

    "},{"location":"commands/sql_connect/#examples","title":"Examples","text":""},{"location":"commands/sql_connect/#options","title":"Options","text":""},{"location":"commands/sql_connect/#global-options","title":"Global Options","text":""},{"location":"commands/sql_connect/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_create/","title":"sql:create","text":"

    Create a database.

    "},{"location":"commands/sql_create/#examples","title":"Examples","text":""},{"location":"commands/sql_create/#options","title":"Options","text":""},{"location":"commands/sql_create/#global-options","title":"Global Options","text":""},{"location":"commands/sql_create/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_drop/","title":"sql:drop","text":"

    Drop all tables in a given database.

    "},{"location":"commands/sql_drop/#options","title":"Options","text":""},{"location":"commands/sql_drop/#global-options","title":"Global Options","text":""},{"location":"commands/sql_drop/#topics","title":"Topics","text":""},{"location":"commands/sql_drop/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_dump/","title":"sql:dump","text":"

    Exports the Drupal DB as SQL using mysqldump or equivalent.

    --create-db is used by sql-sync, since including the DROP TABLE statements interferes with the import when the database is created.

    "},{"location":"commands/sql_dump/#examples","title":"Examples","text":""},{"location":"commands/sql_dump/#options","title":"Options","text":""},{"location":"commands/sql_dump/#global-options","title":"Global Options","text":""},{"location":"commands/sql_dump/#topics","title":"Topics","text":""},{"location":"commands/sql_dump/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_query/","title":"sql:query","text":"

    Execute a query against a database.

    "},{"location":"commands/sql_query/#examples","title":"Examples","text":""},{"location":"commands/sql_query/#arguments","title":"Arguments","text":""},{"location":"commands/sql_query/#options","title":"Options","text":""},{"location":"commands/sql_query/#global-options","title":"Global Options","text":""},{"location":"commands/sql_query/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_sanitize/","title":"sql:sanitize","text":"

    Sanitize the database by removing or obfuscating user data.

    Commandfiles may add custom operations by implementing:

    - `#[CLI\\Hook(type: HookManager::ON_EVENT, target: 'sql-sanitize-confirms')]`. Display summary to user before confirmation.\n- `#[CLI\\Hook(type: HookManager::POST_COMMAND_HOOK, target: 'sql:sanitize')]`. Run queries or call APIs to perform sanitizing\n

    Several working commandfiles may be found at https://github.com/drush-ops/drush/tree/12.x/src/Drupal/Commands/sql

    "},{"location":"commands/sql_sanitize/#examples","title":"Examples","text":""},{"location":"commands/sql_sanitize/#options","title":"Options","text":""},{"location":"commands/sql_sanitize/#global-options","title":"Global Options","text":""},{"location":"commands/sql_sanitize/#topics","title":"Topics","text":""},{"location":"commands/sql_sanitize/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_sync/","title":"sql:sync","text":"

    Copy DB data from a source site to a target site. Transfers data via rsync.

    "},{"location":"commands/sql_sync/#examples","title":"Examples","text":""},{"location":"commands/sql_sync/#arguments","title":"Arguments","text":""},{"location":"commands/sql_sync/#options","title":"Options","text":""},{"location":"commands/sql_sync/#global-options","title":"Global Options","text":""},{"location":"commands/sql_sync/#topics","title":"Topics","text":""},{"location":"commands/sql_sync/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/state_delete/","title":"state:delete","text":"

    Delete a state entry.

    "},{"location":"commands/state_delete/#examples","title":"Examples","text":""},{"location":"commands/state_delete/#arguments","title":"Arguments","text":""},{"location":"commands/state_delete/#global-options","title":"Global Options","text":""},{"location":"commands/state_delete/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/state_get/","title":"state:get","text":"

    Display a state value.

    "},{"location":"commands/state_get/#examples","title":"Examples","text":""},{"location":"commands/state_get/#arguments","title":"Arguments","text":""},{"location":"commands/state_get/#options","title":"Options","text":""},{"location":"commands/state_get/#global-options","title":"Global Options","text":""},{"location":"commands/state_get/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/state_set/","title":"state:set","text":"

    Set a state value.

    "},{"location":"commands/state_set/#examples","title":"Examples","text":""},{"location":"commands/state_set/#arguments","title":"Arguments","text":""},{"location":"commands/state_set/#options","title":"Options","text":""},{"location":"commands/state_set/#global-options","title":"Global Options","text":""},{"location":"commands/state_set/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/theme_install/","title":"theme:install","text":"

    Install one or more themes.

    "},{"location":"commands/theme_install/#arguments","title":"Arguments","text":""},{"location":"commands/theme_install/#global-options","title":"Global Options","text":""},{"location":"commands/theme_install/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/theme_uninstall/","title":"theme:uninstall","text":"

    Uninstall themes.

    "},{"location":"commands/theme_uninstall/#arguments","title":"Arguments","text":""},{"location":"commands/theme_uninstall/#global-options","title":"Global Options","text":""},{"location":"commands/theme_uninstall/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/twig_compile/","title":"twig:compile","text":"

    Compile all Twig template(s).

    "},{"location":"commands/twig_compile/#global-options","title":"Global Options","text":""},{"location":"commands/twig_compile/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/twig_debug/","title":"twig:debug","text":"

    12.1+

    Enables Twig debug and disables caching Twig templates.

    "},{"location":"commands/twig_debug/#arguments","title":"Arguments","text":""},{"location":"commands/twig_debug/#global-options","title":"Global Options","text":""},{"location":"commands/twig_debug/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/twig_unused/","title":"twig:unused","text":"

    Find potentially unused Twig templates.

    Immediately before running this command, web crawl your entire web site. Or use your Production PHPStorage dir for comparison.

    "},{"location":"commands/twig_unused/#examples","title":"Examples","text":""},{"location":"commands/twig_unused/#arguments","title":"Arguments","text":""},{"location":"commands/twig_unused/#options","title":"Options","text":""},{"location":"commands/twig_unused/#global-options","title":"Global Options","text":""},{"location":"commands/twig_unused/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/updatedb/","title":"updatedb","text":"

    Apply any database updates required (as with running update.php).

    "},{"location":"commands/updatedb/#options","title":"Options","text":""},{"location":"commands/updatedb/#global-options","title":"Global Options","text":""},{"location":"commands/updatedb/#topics","title":"Topics","text":""},{"location":"commands/updatedb/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/updatedb_status/","title":"updatedb:status","text":"

    List any pending database updates.

    "},{"location":"commands/updatedb_status/#options","title":"Options","text":""},{"location":"commands/updatedb_status/#global-options","title":"Global Options","text":""},{"location":"commands/updatedb_status/#topics","title":"Topics","text":""},{"location":"commands/updatedb_status/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_block/","title":"user:block","text":"

    Block the specified user(s).

    "},{"location":"commands/user_block/#examples","title":"Examples","text":""},{"location":"commands/user_block/#arguments","title":"Arguments","text":""},{"location":"commands/user_block/#options","title":"Options","text":""},{"location":"commands/user_block/#global-options","title":"Global Options","text":""},{"location":"commands/user_block/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_cancel/","title":"user:cancel","text":"

    Block or delete user account(s) with the specified name(s).

    "},{"location":"commands/user_cancel/#examples","title":"Examples","text":""},{"location":"commands/user_cancel/#arguments","title":"Arguments","text":""},{"location":"commands/user_cancel/#options","title":"Options","text":""},{"location":"commands/user_cancel/#global-options","title":"Global Options","text":""},{"location":"commands/user_cancel/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_create/","title":"user:create","text":"

    Create a user account.

    "},{"location":"commands/user_create/#examples","title":"Examples","text":""},{"location":"commands/user_create/#arguments","title":"Arguments","text":""},{"location":"commands/user_create/#options","title":"Options","text":""},{"location":"commands/user_create/#global-options","title":"Global Options","text":""},{"location":"commands/user_create/#topics","title":"Topics","text":""},{"location":"commands/user_create/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_information/","title":"user:information","text":"

    Print information about the specified user(s).

    "},{"location":"commands/user_information/#examples","title":"Examples","text":""},{"location":"commands/user_information/#arguments","title":"Arguments","text":""},{"location":"commands/user_information/#options","title":"Options","text":""},{"location":"commands/user_information/#global-options","title":"Global Options","text":""},{"location":"commands/user_information/#topics","title":"Topics","text":""},{"location":"commands/user_information/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_login/","title":"user:login","text":"

    Display a one time login link for user ID 1, or another user.

    "},{"location":"commands/user_login/#examples","title":"Examples","text":""},{"location":"commands/user_login/#arguments","title":"Arguments","text":""},{"location":"commands/user_login/#options","title":"Options","text":""},{"location":"commands/user_login/#global-options","title":"Global Options","text":""},{"location":"commands/user_login/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_password/","title":"user:password","text":"

    Set the password for the user account with the specified name.

    "},{"location":"commands/user_password/#examples","title":"Examples","text":""},{"location":"commands/user_password/#arguments","title":"Arguments","text":""},{"location":"commands/user_password/#global-options","title":"Global Options","text":""},{"location":"commands/user_password/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_role_add/","title":"user:role:add","text":"

    Add a role to the specified user accounts.

    "},{"location":"commands/user_role_add/#examples","title":"Examples","text":""},{"location":"commands/user_role_add/#arguments","title":"Arguments","text":""},{"location":"commands/user_role_add/#options","title":"Options","text":""},{"location":"commands/user_role_add/#global-options","title":"Global Options","text":""},{"location":"commands/user_role_add/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_role_remove/","title":"user:role:remove","text":"

    Remove a role from the specified user accounts.

    "},{"location":"commands/user_role_remove/#examples","title":"Examples","text":""},{"location":"commands/user_role_remove/#arguments","title":"Arguments","text":""},{"location":"commands/user_role_remove/#options","title":"Options","text":""},{"location":"commands/user_role_remove/#global-options","title":"Global Options","text":""},{"location":"commands/user_role_remove/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_unblock/","title":"user:unblock","text":"

    Unblock the specified user(s).

    "},{"location":"commands/user_unblock/#examples","title":"Examples","text":""},{"location":"commands/user_unblock/#arguments","title":"Arguments","text":""},{"location":"commands/user_unblock/#options","title":"Options","text":""},{"location":"commands/user_unblock/#global-options","title":"Global Options","text":""},{"location":"commands/user_unblock/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/version/","title":"version","text":"

    Show Drush version.

    "},{"location":"commands/version/#options","title":"Options","text":""},{"location":"commands/version/#global-options","title":"Global Options","text":""},{"location":"commands/version/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/views_dev/","title":"views:dev","text":"

    Set several Views settings to more developer-oriented values.

    "},{"location":"commands/views_dev/#global-options","title":"Global Options","text":""},{"location":"commands/views_dev/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/views_disable/","title":"views:disable","text":"

    Disable the specified views.

    "},{"location":"commands/views_disable/#examples","title":"Examples","text":""},{"location":"commands/views_disable/#arguments","title":"Arguments","text":""},{"location":"commands/views_disable/#global-options","title":"Global Options","text":""},{"location":"commands/views_disable/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/views_enable/","title":"views:enable","text":"

    Enable the specified views.

    "},{"location":"commands/views_enable/#examples","title":"Examples","text":""},{"location":"commands/views_enable/#arguments","title":"Arguments","text":""},{"location":"commands/views_enable/#global-options","title":"Global Options","text":""},{"location":"commands/views_enable/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/views_execute/","title":"views:execute","text":"

    Execute a view and show a count of the results, or the rendered HTML.

    "},{"location":"commands/views_execute/#examples","title":"Examples","text":""},{"location":"commands/views_execute/#arguments","title":"Arguments","text":""},{"location":"commands/views_execute/#options","title":"Options","text":""},{"location":"commands/views_execute/#global-options","title":"Global Options","text":""},{"location":"commands/views_execute/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/views_list/","title":"views:list","text":"

    Get a list of all views in the system.

    "},{"location":"commands/views_list/#examples","title":"Examples","text":""},{"location":"commands/views_list/#options","title":"Options","text":""},{"location":"commands/views_list/#global-options","title":"Global Options","text":""},{"location":"commands/views_list/#topics","title":"Topics","text":""},{"location":"commands/views_list/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/watchdog_delete/","title":"watchdog:delete","text":"

    Delete watchdog log records.

    "},{"location":"commands/watchdog_delete/#examples","title":"Examples","text":""},{"location":"commands/watchdog_delete/#arguments","title":"Arguments","text":""},{"location":"commands/watchdog_delete/#options","title":"Options","text":""},{"location":"commands/watchdog_delete/#global-options","title":"Global Options","text":""},{"location":"commands/watchdog_delete/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/watchdog_list/","title":"watchdog:list","text":"

    Interactively filter the watchdog message listing.

    "},{"location":"commands/watchdog_list/#examples","title":"Examples","text":""},{"location":"commands/watchdog_list/#arguments","title":"Arguments","text":""},{"location":"commands/watchdog_list/#options","title":"Options","text":""},{"location":"commands/watchdog_list/#global-options","title":"Global Options","text":""},{"location":"commands/watchdog_list/#topics","title":"Topics","text":""},{"location":"commands/watchdog_list/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/watchdog_show-one/","title":"watchdog:show-one","text":"

    Show one log record by ID.

    "},{"location":"commands/watchdog_show-one/#arguments","title":"Arguments","text":""},{"location":"commands/watchdog_show-one/#options","title":"Options","text":""},{"location":"commands/watchdog_show-one/#global-options","title":"Global Options","text":""},{"location":"commands/watchdog_show-one/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/watchdog_show/","title":"watchdog:show","text":"

    Show watchdog messages.

    "},{"location":"commands/watchdog_show/#examples","title":"Examples","text":""},{"location":"commands/watchdog_show/#arguments","title":"Arguments","text":""},{"location":"commands/watchdog_show/#options","title":"Options","text":""},{"location":"commands/watchdog_show/#global-options","title":"Global Options","text":""},{"location":"commands/watchdog_show/#topics","title":"Topics","text":""},{"location":"commands/watchdog_show/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/watchdog_tail/","title":"watchdog:tail","text":"

    10.6+

    Tail watchdog messages.

    "},{"location":"commands/watchdog_tail/#examples","title":"Examples","text":""},{"location":"commands/watchdog_tail/#arguments","title":"Arguments","text":""},{"location":"commands/watchdog_tail/#options","title":"Options","text":""},{"location":"commands/watchdog_tail/#global-options","title":"Global Options","text":""},{"location":"commands/watchdog_tail/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/yaml_get_value/","title":"yaml:get:value","text":"

    12.0+

    Get a value for a specific key in a YAML file.

    See https://github.com/grasmash/yaml-cli for a README and bug reports.

    "},{"location":"commands/yaml_get_value/#arguments","title":"Arguments","text":""},{"location":"commands/yaml_get_value/#global-options","title":"Global Options","text":""},{"location":"commands/yaml_get_value/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/yaml_lint/","title":"yaml:lint","text":"

    12.0+

    Validates that a given YAML file has valid syntax.

    See https://github.com/grasmash/yaml-cli for a README and bug reports.

    "},{"location":"commands/yaml_lint/#arguments","title":"Arguments","text":""},{"location":"commands/yaml_lint/#global-options","title":"Global Options","text":""},{"location":"commands/yaml_lint/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/yaml_unset_key/","title":"yaml:unset:key","text":"

    12.0+

    Unset a specific key in a YAML file.

    See https://github.com/grasmash/yaml-cli for a README and bug reports.

    "},{"location":"commands/yaml_unset_key/#arguments","title":"Arguments","text":""},{"location":"commands/yaml_unset_key/#global-options","title":"Global Options","text":""},{"location":"commands/yaml_unset_key/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/yaml_update_key/","title":"yaml:update:key","text":"

    12.0+

    Update a specific key in a YAML file.

    See https://github.com/grasmash/yaml-cli for a README and bug reports.

    "},{"location":"commands/yaml_update_key/#arguments","title":"Arguments","text":""},{"location":"commands/yaml_update_key/#global-options","title":"Global Options","text":""},{"location":"commands/yaml_update_key/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/yaml_update_value/","title":"yaml:update:value","text":"

    12.0+

    Update the value for a specific key in a YAML file.

    See https://github.com/grasmash/yaml-cli for a README and bug reports.

    "},{"location":"commands/yaml_update_value/#arguments","title":"Arguments","text":""},{"location":"commands/yaml_update_value/#options","title":"Options","text":""},{"location":"commands/yaml_update_value/#global-options","title":"Global Options","text":""},{"location":"commands/yaml_update_value/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"contribute/CONTRIBUTING/","title":"Guidelines","text":"

    Drush is built by people like you! Please join us.

    "},{"location":"contribute/CONTRIBUTING/#git-and-pull-requests","title":"Git and Pull requests","text":""},{"location":"contribute/CONTRIBUTING/#development-environment","title":"Development Environment","text":""},{"location":"contribute/CONTRIBUTING/#coding-style","title":"Coding style","text":""},{"location":"contribute/CONTRIBUTING/#documentation","title":"Documentation","text":""},{"location":"contribute/unish/","title":"Unish","text":"

    Drush's test suite (aka Unish) is based on PHPUnit. In order to maintain high quality, our tests are run on every push. See CircleCi.

    "},{"location":"contribute/unish/#usage","title":"Usage","text":"
    1. git clone https://github.com/drush-ops/drush.git
    2. cd drush
    3. composer install
    4. Review the configuration settings in tests/phpunit.xml.dist. If customization is needed, copy phpunit.xml.dist to phpunit.xml and edit away.
    5. Run all test suites: composer test
    "},{"location":"contribute/unish/#ddev","title":"DDEV","text":"

    11.0+

    Drush's own tests may be run within provided Docker containers via DDEV

    "},{"location":"contribute/unish/#advanced-usage","title":"Advanced usage","text":""},{"location":"contribute/unish/#about-the-test-suites","title":"About the Test Suites","text":""},{"location":"contribute/unish/#drush-test-traits","title":"Drush Test Traits","text":"

    Drush provides test traits that may be used to test your own Drush extensions. Adding the traits varies slightly depending how you package your Drush extension.

    Once you successfully have use Drush\\TestTraits\\DrushTestTrait in your test class, you are able to write simple tests that call your extension's commands and makes assertions against the output.

        public function testMyCommand()\n    {\n        $this->drush('my:command', ['param'], ['flag' => 'value']);\n        $this->assertOutputEquals('The parameter is \"param\" and the \"flag\" option is \"value\"');\n    }\n

    "},{"location":"examples/ArtCommands.php/","title":"ArtCommands.php","text":"
    <?php\n\nnamespace Drush\\Commands;\n\nuse Consolidation\\AnnotatedCommand\\AnnotationData;\nuse Consolidation\\AnnotatedCommand\\CommandData;\nuse Consolidation\\AnnotatedCommand\\Events\\CustomEventAwareInterface;\nuse Consolidation\\AnnotatedCommand\\Events\\CustomEventAwareTrait;\nuse Consolidation\\AnnotatedCommand\\Hooks\\HookManager;\nuse Consolidation\\OutputFormatters\\StructuredData\\RowsOfFields;\nuse Drush\\Attributes as CLI;\nuse Drush\\Style\\DrushStyle;\nuse Symfony\\Component\\Console\\Input\\InputInterface;\nuse Symfony\\Component\\Console\\Output\\OutputInterface;\n\n/**\n * Run these commands using the --include option - e.g. `drush --include=/path/to/drush/examples art sandwich`\n *\n * See [Drush Test Traits](https://github.com/drush-ops/drush/blob/12.x/docs/contribute/unish.md#about-the-test-suites) for info on testing Drush commands.\n */\n\nclass ArtCommands extends DrushCommands implements CustomEventAwareInterface\n{\n    use CustomEventAwareTrait;\n\n    /** @var string[] */\n    protected ?array $arts;\n\n    /**\n     * Show a fabulous picture.\n     */\n    #[CLI\\Command(name: 'artwork:show', aliases: ['arts'])]\n    #[CLI\\Argument(name: 'art', description: 'The name of the art to display')]\n    #[CLI\\Usage(name: 'drush art sandwich', description: 'Show a marvelous picture of a sandwich with pickles.')]\n    public function art($art = '')\n    {\n        $data = $this->getArt();\n        $name = $data[$art]['name'];\n        $description = $data[$art]['description'];\n        $path = $data[$art]['path'];\n        $msg = dt(\n            'Okay. Here is {art}: {description}',\n            ['art' => $name, 'description' => $description]\n        );\n        $this->output()->writeln(\"\\n\" . $msg . \"\\n\");\n        $this->printFile($path);\n    }\n\n    /**\n     * Show a table of information about available art.\n     */\n    #[CLI\\Command(name: 'artwork:list', aliases: ['artls'])]\n    #[CLI\\FieldLabels(labels: ['name' => 'Name', 'description' => 'Description', 'path' => 'Path'])]\n    #[CLI\\DefaultTableFields(fields: ['name', 'description'])]\n    #[CLI\\FilterDefaultField(field: 'name')]\n    public function listArt($options = ['format' => 'table']): RowsOfFields\n    {\n        $data = $this->getArt();\n        return new RowsOfFields($data);\n    }\n\n    /**\n     * Commandfiles may also add topics.  These will appear in\n     * the list of topics when `drush topic` is executed.\n     * To view the topic below, run `drush --include=/full/path/to/examples topic`\n     */\n\n    /**\n     * Ruminations on the true meaning and philosophy of artwork.\n     */\n    #[CLI\\Command(name: 'artwork:explain')]\n    #[CLI\\Topics(isTopic: true, path: __DIR__ . '/art-topic.md')]\n    #[CLI\\Help(hidden: true)]\n    public function ruminate(): void\n    {\n        self::printFile($this->commandData);\n    }\n\n    /**\n     * Return the available built-in art. Any Drush commandfile may provide\n     * more art by implementing a 'drush-art' on-event hook. This on-event\n     * hook is defined in the 'findArt' method below.\n     */\n    #[CLI\\Hook(type: HookManager::ON_EVENT, target: 'drush-art')]\n    public function builtInArt()\n    {\n        return [\n            'drush' => [\n                'name' => 'Drush',\n                'description' => 'The Drush logo.',\n                'path' => __DIR__ . '/art/drush-nocolor.txt',\n            ],\n            'sandwich' => [\n                'name' => 'Sandwich',\n                'description' => 'A tasty meal with bread often consumed at lunchtime.',\n                'path' => __DIR__ . '/art/sandwich-nocolor.txt',\n            ],\n        ];\n    }\n\n    #[CLI\\Hook(type: HookManager::INTERACT, target: 'artwork:show')]\n    public function interact(InputInterface $input, OutputInterface $output, AnnotationData $annotationData)\n    {\n        $io = new DrushStyle($input, $output);\n\n        // If the user did not specify any artwork, then prompt for one.\n        $art = $input->getArgument('art');\n        if (empty($art)) {\n            $data = $this->getArt();\n            $selections = $this->convertArtListToKeyValue($data);\n            $selection = $io->choice('Select art to display', $selections);\n            $input->setArgument('art', $selection);\n        }\n    }\n\n    #[CLI\\Hook(type: HookManager::ARGUMENT_VALIDATOR, target: 'artwork:show')]\n    public function artValidate(CommandData $commandData)\n    {\n        $art = $commandData->input()->getArgument('art');\n        $data = $this->getArt();\n        if (!isset($data[$art])) {\n            throw new \\Exception(dt('I do not have any art called \"{name}\".', ['name' => $art]));\n        }\n    }\n\n    /**\n     * Get a list of available artwork. Cache result for future fast access.\n     */\n    protected function getArt(): array\n    {\n        if (!isset($this->arts)) {\n            $this->arts = $this->findArt();\n        }\n        return $this->arts;\n    }\n\n    /**\n     * Use custom defined on-event hook 'drush-art' to find available artwork.\n     */\n    protected function findArt()\n    {\n        $arts = [];\n        $handlers = $this->getCustomEventHandlers('drush-art');\n        foreach ($handlers as $handler) {\n            $handlerResult = $handler();\n            $arts = array_merge($arts, $handlerResult);\n        }\n        return $arts;\n    }\n\n    /**\n     * Given a list of artwork, convert to a 'key' => 'Name: Description' array.\n     */\n    protected function convertArtListToKeyValue(array $data): array\n    {\n        $result = [];\n        foreach ($data as $key => $item) {\n            $result[$key] = $item['name'] . ': ' . $item['description'];\n        }\n        return $result;\n    }\n}\n
    "},{"location":"examples/PolicyCommands.php/","title":"PolicyCommands.php","text":"
    <?php\n\nnamespace Drush\\Commands;\n\nuse Consolidation\\AnnotatedCommand\\CommandData;\nuse Consolidation\\AnnotatedCommand\\Hooks\\HookManager;\nuse Drush\\Attributes as CLI;\nuse Drush\\Commands\\core\\RsyncCommands;\nuse Drush\\Commands\\core\\UpdateDBCommands;\nuse Drush\\Commands\\DrushCommands;\nuse Drush\\Commands\\sql\\SqlSyncCommands;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\n/**\n * Load this commandfile using the --include option - e.g. `drush --include=/path/to/drush/examples`\n *\n * See [Drush Test Traits](https://github.com/drush-ops/drush/blob/12.x/docs/contribute/unish.md#about-the-test-suites) for info on testing Drush commands.\n */\n\nclass PolicyCommands extends DrushCommands\n{\n    /**\n     * Prevent catastrophic braino. Note that this file has to be local to the\n     * machine that initiates the sql:sync command.\n     *\n     * @throws \\Exception\n     */\n    #[CLI\\Hook(type: HookManager::ARGUMENT_VALIDATOR, target: SqlSyncCommands::SYNC)]\n    public function sqlSyncValidate(CommandData $commandData)\n    {\n        if ($commandData->input()->getArgument('destination') == '@prod') {\n            throw new \\Exception(dt('Per !file, you may never overwrite the production database.', ['!file' => __FILE__]));\n        }\n    }\n\n    /**\n     * Limit rsync operations to production site.\n     */\n    #[CLI\\Hook(type: HookManager::ARGUMENT_VALIDATOR, target: RsyncCommands::RSYNC)]\n    public function rsyncValidate(CommandData $commandData)\n    {\n        if (preg_match(\"/^@prod/\", $commandData->input()->getArgument('destination'))) {\n            throw new \\Exception(dt('Per !file, you may never rsync to the production site.', ['!file' => __FILE__]));\n        }\n    }\n\n    /**\n     * Unauthorized may not execute updates.\n     */\n    #[CLI\\Hook(type: HookManager::ARGUMENT_VALIDATOR, target: UpdateDBCommands::UPDATEDB)]\n    public function validateUpdateDb(CommandData $commandData)\n    {\n        if (!$commandData->input()->getOption('secret') == 'mysecret') {\n            throw new \\Exception(dt('UpdateDb command requires a secret token per site policy.'));\n        }\n    }\n\n    #[CLI\\Hook(type: HookManager::OPTION_HOOK, target: UpdateDBCommands::UPDATEDB)]\n    #[CLI\\Option(name: 'secret', description: 'A required token else user may not run updatedb command.')]\n    public function optionsetUpdateDb($options = ['secret' => self::REQ])\n    {\n    }\n}\n
    "},{"location":"examples/SiteAliasAlterCommands.php/","title":"SiteAliasAlterCommands.php","text":"
    <?php\n\nnamespace Drush\\Commands;\n\nuse Consolidation\\AnnotatedCommand\\AnnotationData;\nuse Consolidation\\AnnotatedCommand\\Hooks\\HookManager;\nuse Consolidation\\SiteAlias\\SiteAliasManagerAwareInterface;\nuse Consolidation\\SiteAlias\\SiteAliasManagerAwareTrait;\nuse Drush\\Attributes as CLI;\nuse Symfony\\Component\\Console\\Input\\InputInterface;\n\n/**\n * Load this example by using the --include option - e.g. `drush --include=/path/to/drush/examples`\n */\nclass SiteAliasAlterCommands extends DrushCommands implements SiteAliasManagerAwareInterface\n{\n    use SiteAliasManagerAwareTrait;\n\n    /**\n     * A few example alterations to site aliases.\n     */\n    #[CLI\\Hook(type: HookManager::PRE_INITIALIZE, target: '*')]\n    public function alter(InputInterface $input, AnnotationData $annotationData)\n    {\n        $self = $this->siteAliasManager()->getSelf();\n        if ($self->isRemote()) {\n            // Always pass along ssh keys.\n            if (!$self->has('ssh.options')) {\n                // Don't edit the alias - edit the general config service instead.\n                $this->getConfig()->set('ssh.options', '-o ForwardAgent=yes');\n            }\n\n            // Change the SSH user.\n            $input->setOption('remote-user', 'mw2');\n\n            // Test to see if specific environment really exists in wildcard\n            // aliases, but only if the target is a specific host.\n            $host = $self->get('host');\n            if (preg_match('#\\.myserver.com$#', $host)) {\n                $ip = gethostbyname($host);\n                // If the return value of gethostbyname equals its input parameter,\n                // that indicates failure.\n                if ($host == $ip) {\n                    $aliasName = $self->name();\n                    throw new \\Exception(\"The alias $aliasName refers to an environment that does not exist.\");\n                }\n            }\n        }\n    }\n}\n
    "},{"location":"examples/SyncViaHttpCommands.php/","title":"SyncViaHttpCommands.php","text":"
    <?php\n\nnamespace Drush\\Commands;\n\nuse Consolidation\\AnnotatedCommand\\CommandData;\nuse Consolidation\\AnnotatedCommand\\Hooks\\HookManager;\nuse Drush\\Attributes as CLI;\nuse Drush\\Commands\\DrushCommands;\nuse Drush\\Commands\\sql\\SqlSyncCommands;\nuse Drush\\Drush;\nuse Drush\\Exec\\ExecTrait;\nuse Symfony\\Component\\Filesystem\\Filesystem;\n\n/**\n * Load this commandfile using the --include option - e.g. `drush --include=/path/to/drush/examples`\n */\n\nclass SyncViaHttpCommands extends DrushCommands\n{\n  /**\n   * When a hook extends a command with additional options, it must\n   * implement declare those option(s) in a @hook option like this one.  Doing so will add\n   * the option to the help text for the modified command, and will also\n   * allow the new option to be specified on the command line.  Without\n   * this, Drush will fail with an error when a user attempts to use\n   * an unknown option.\n   */\n    #[CLI\\Hook(type: HookManager::OPTION_HOOK, target: SqlSyncCommands::SYNC)]\n    #[CLI\\Option(name: 'http-sync', description: 'Copy the database via http instead of rsync.  Value is the url that the existing database dump can be found at.')]\n    #[CLI\\Option(name: 'http-sync-user', description: 'Username for the protected directory containing the sql dump.')]\n    #[CLI\\Option(name: 'http-sync-password', description: 'Password for the same directory.')]\n    public function optionsetSqlSync()\n    {\n    }\n\n    /**\n     * During the pre hook, determine if the http-sync option has been\n     * specified.  If it has been, then disable the normal ssh + rsync\n     * dump-and-transfer that sql-sync usually does, and transfer the\n     * database dump via an http download.\n     */\n    #[CLI\\Hook(type: HookManager::PRE_COMMAND_HOOK, target: SqlSyncCommands::SYNC)]\n    public function preSqlSync(CommandData $commandData)\n    {\n        $sql_dump_download_url = $commandData->input()->getOption('http-sync');\n        if (!empty($sql_dump_download_url)) {\n            $user = $commandData->input()->getOption('http-sync-user');\n            $password = $commandData->input()->getOption('http-sync-password');\n            $source_dump_file = $this->downloadFile($sql_dump_download_url, $user, $password);\n            $commandData->input()->setOption('target-dump', $source_dump_file);\n            $commandData->input()->setOption('no-dump', true);\n            $commandData->input()->setOption('no-sync', true);\n        }\n    }\n\n    /**\n     * Downloads a file.\n     *\n     * Optionally uses user authentication, using either wget or curl, as available.\n     */\n    protected function downloadFile($url, $user = false, $password = false, $destination = false, $overwrite = true)\n    {\n        static $use_wget;\n        if ($use_wget === null) {\n            $use_wget = ExecTrait::programExists('wget');\n        }\n\n        $destination_tmp = drush_tempnam('download_file');\n        if ($use_wget) {\n            $args = ['wget', '-q', '--timeout=30'];\n            if ($user && $password) {\n                $args = array_merge($args, [\"--user=$user\", \"--password=$password\", '-O', $destination_tmp, $url]);\n            } else {\n                $args = array_merge($args, ['-O', $destination_tmp, $url]);\n            }\n        } else {\n            $args = ['curl', '-s', '-L', '--connect-timeout 30'];\n            if ($user && $password) {\n                $args = array_merge($args, ['--user', \"$user:$password\", '-o', $destination_tmp, $url]);\n            } else {\n                $args = array_merge($args, ['-o', $destination_tmp, $url]);\n            }\n        }\n        $process = Drush::process($args);\n        $process->mustRun();\n\n        if (!Drush::simulate()) {\n            if (!drush_file_not_empty($destination_tmp) && $file = @file_get_contents($url)) {\n                @file_put_contents($destination_tmp, $file);\n            }\n            if (!drush_file_not_empty($destination_tmp)) {\n                // Download failed.\n                throw new \\Exception(dt(\"The URL !url could not be downloaded.\", ['!url' => $url]));\n            }\n        }\n        if ($destination) {\n            $fs = new Filesystem();\n            $fs->rename($destination_tmp, $destination, $overwrite);\n            return $destination;\n        }\n        return $destination_tmp;\n    }\n}\n
    "},{"location":"examples/XkcdCommands.php/","title":"XkcdCommands.php","text":"
    <?php\n\nnamespace Drush\\Commands;\n\nuse Drush\\Attributes as CLI;\nuse Drush\\Exec\\ExecTrait;\n\n/**\n * Run these commands using the --include option - e.g. `drush --include=/path/to/drush/examples xkcd`\n *\n * For an example of a Drush extension with tests for Drush:\n * - https://github.com/drush-ops/example-drush-extension\n */\n\nclass XkcdCommands extends DrushCommands\n{\n    use ExecTrait;\n\n    /**\n     * Retrieve and display xkcd cartoons.\n     */\n    #[CLI\\Command(name: 'xkcd:fetch', aliases: ['xkcd'])]\n    #[CLI\\Option(name: 'search', description: 'Optional argument to retrieve the cartoons matching an index number, keyword search or \"random\". If omitted the latest cartoon will be retrieved.')]\n    #[CLI\\Option(name: 'image-viewer', description: 'Command to use to view images (e.g. xv, firefox). Defaults to \"display\" (from ImageMagick).')]\n    #[CLI\\Option(name: 'google-custom-search-api-key', description: 'Google Custom Search API Key, available from https://code.google.com/apis/console/. Default key limited to 100 queries/day globally.')]\n    #[CLI\\Usage(name: 'drush xkcd', description: 'Retrieve and display the latest cartoon.')]\n    #[CLI\\Usage(name: 'drush xkcd sandwich', description: 'Retrieve and display cartoons about sandwiches.')]\n    #[CLI\\Usage(name: 'drush xkcd 123 --image-viewer=eog', description: 'Retrieve and display cartoon #123 in eog.')]\n    #[CLI\\Usage(name: 'drush xkcd random --image-viewer=firefox', description: 'Retrieve and display a random cartoon in Firefox.')]\n    public function fetch($search = null, $options = ['image-viewer' => 'open', 'google-custom-search-api-key' => 'AIzaSyDpE01VDNNT73s6CEeJRdSg5jukoG244ek'])\n    {\n        $this->doFetch($search, $options);\n    }\n\n    /**\n     * @param $search\n     * @param array $options\n     * @throws \\Exception\n     */\n    protected function doFetch($search, array $options): void\n    {\n        if (empty($search)) {\n            $this->startBrowser('http://xkcd.com');\n        } elseif (is_numeric($search)) {\n            $this->startBrowser('http://xkcd.com/' . $search);\n        } elseif ($search == 'random') {\n            $xkcd_response = @json_decode(file_get_contents('http://xkcd.com/info.0.json'));\n            if (!empty($xkcd_response->num)) {\n                $this->startBrowser('http://xkcd.com/' . rand(1, $xkcd_response->num));\n            }\n        } else {\n            // This uses an API key with a limited number of searches per.\n            $search_response = @json_decode(file_get_contents('https://www.googleapis.com/customsearch/v1?key=' . $options['google-custom-search-api-key'] . '&cx=012652707207066138651:zudjtuwe28q&q=' . $search));\n            if (!empty($search_response->items)) {\n                foreach ($search_response->items as $item) {\n                    $this->startBrowser($item->link);\n                }\n            } else {\n                throw new \\Exception(dt('The search failed or produced no results.'));\n            }\n        }\n    }\n}\n
    "},{"location":"examples/example.drush.yml/","title":"drush.yml","text":"
    #\n# A minimalist Drush config file.\n# See https://www.drush.org/latest/using-drush-configuration/ for lots more documentation.\n#\n\n# Preflight configuration.\ndrush:\ninclude:\n- '${env.HOME}/.drush/commands'\n- /usr/share/drush/commands\npaths:\nconfig:\n# Load additional config files. Is silently skipped if not found. Filename must be drush.yml\n- ${env.HOME}/.drush/config/drush.yml\nalias-path:\n- '${env.HOME}/.drush/sites'\n- /etc/drush/sites\n\n# Global options.\noptions:\n# Specify the base_url that should be used when generating links.\n# uri: 'http://example.com/subdir'\n\n# Command-specific options.\ncommand:\nsql:\ndump:\noptions:\n# Uncomment to omit cache and similar tables (including during a sql:sync).\n#       structure-tables-key: common\n\n# Non-options.\nssh:\n# Specify options to pass to ssh.  The default is to prohibit\n# password authentication, and is included here, so you may add additional\n# parameters without losing the default configuration.\noptions: '-o PasswordAuthentication=no'\n# This string is valid for Bash shell. Override in case you need something different. See https://github.com/drush-ops/drush/issues/3816.\npipefail: 'set -o pipefail; '\n
    "},{"location":"examples/example.prompt.sh/","title":"prompt.sh","text":"
    # -*- mode: shell-script; mode: flyspell-prog; ispell-local-dictionary: \"american\" -*-\n#\n# Example PS1 prompt.\n#\n# Note: This file does a lot, and is designed for Bash. If you want to show the\n# currently set alias in your prompt, use the first 2 values below as an example.\n\n# This section can be used for the POWERLEVEL9K theme for Oh My Zsh.\n#FILE=\"${TMPDIR:-/tmp/}/drush-env-${USER}/drush-drupal-site-$$\"\n#POWERLEVEL9K_CUSTOM_DRUSH=\"[ -r $FILE ] && cat $FILE\"\n#POWERLEVEL9K_CUSTOM_DRUSH_BACKGROUND=\"green\"\n#POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir vcs custom_drush)\n\n#\n# Note that your Bash session must already have the __git_ps1 function available.\n# Typically this is provided by git-prompt.sh, see instructions for downloading\n# and including this file here:\n# https://github.com/git/git/blob/10.x/contrib/completion/git-prompt.sh\n#\n# Features:\n#\n# Displays Git repository and Drush alias status in your prompt.\n\n__drush_ps1() {\nf=\"${TMPDIR:-/tmp/}/drush-env-${USER}/drush-drupal-site-$$\"\nif [ -f $f ]\nthen\n__DRUPAL_SITE=$(cat \"$f\")\nelse\n__DRUPAL_SITE=\"$DRUPAL_SITE\"\nfi\n\n# Set DRUSH_PS1_SHOWCOLORHINTS to a non-empty value and define a\n# __drush_ps1_colorize_alias() function for color hints in your Drush PS1\n# prompt. See example.prompt.sh for an example implementation.\nif [ -n \"${__DRUPAL_SITE-}\" ] && [ -n \"${DRUSH_PS1_SHOWCOLORHINTS-}\" ]; then\n__drush_ps1_colorize_alias\n  fi\n\n[[ -n \"$__DRUPAL_SITE\" ]] && printf \"${1:- (%s)}\" \"$__DRUPAL_SITE\"\n}\n\nif [ -n \"$(type -t __git_ps1)\" ] && [ \"$(type -t __git_ps1)\" = function ] && [ \"$(type -t __drush_ps1)\" ] && [ \"$(type -t __drush_ps1)\" = function ]; then\n\n# This line enables color hints in your Drush prompt. Modify the below\n# __drush_ps1_colorize_alias() to customize your color theme.\nDRUSH_PS1_SHOWCOLORHINTS=true\n\n# Git offers various prompt customization options as well as seen in\n# https://github.com/git/git/blob/10.x/contrib/completion/git-prompt.sh.\n# Adjust the following lines to enable the corresponding features:\n#\nGIT_PS1_SHOWDIRTYSTATE=true\nGIT_PS1_SHOWUPSTREAM=auto\n  # GIT_PS1_SHOWSTASHSTATE=true\n# GIT_PS1_SHOWUNTRACKEDFILES=true\nGIT_PS1_SHOWCOLORHINTS=true\n\n# The following line sets your bash prompt according to this example:\n#\n#   username@hostname ~/working-directory (git-branch)[@drush-alias] $\n#\n# See http://ss64.com/bash/syntax-prompt.html for customization options.\nexport PROMPT_COMMAND='__git_ps1 \"\\u@\\h \\w\" \"$(__drush_ps1 \"[%s]\") \\\\\\$ \"'\n\n# PROMPT_COMMAND is used in the example above rather than PS1 because neither\n# Git nor Drush color hints are compatible with PS1. If you don't want color\n# hints, however, and prefer to use PS1, you can still do so by commenting out\n# the PROMPT_COMMAND line above and uncommenting the PS1 line below:\n#\n# export PS1='\\u@\\h \\w$(__git_ps1 \" (%s)\")$(__drush_ps1 \"[%s]\")\\$ '\n\n__drush_ps1_colorize_alias() {\nif [[ -n ${ZSH_VERSION-} ]]; then\nlocal COLOR_BLUE='%F{blue}'\nlocal COLOR_CYAN='%F{cyan}'\nlocal COLOR_GREEN='%F{green}'\nlocal COLOR_MAGENTA='%F{magenta}'\nlocal COLOR_RED='%F{red}'\nlocal COLOR_WHITE='%F{white}'\nlocal COLOR_YELLOW='%F{yellow}'\nlocal COLOR_NONE='%f'\nelse\n# Using \\[ and \\] around colors is necessary to prevent issues with\n# command line editing/browsing/completion.\nlocal COLOR_BLUE='\\[\\e[94m\\]'\nlocal COLOR_CYAN='\\[\\e[36m\\]'\nlocal COLOR_GREEN='\\[\\e[32m\\]'\nlocal COLOR_MAGENTA='\\[\\e[35m\\]'\nlocal COLOR_RED='\\[\\e[91m\\]'\nlocal COLOR_WHITE='\\[\\e[37m\\]'\nlocal COLOR_YELLOW='\\[\\e[93m\\]'\nlocal COLOR_NONE='\\[\\e[0m\\]'\nfi\n\n# Customize your color theme below.\ncase \"$__DRUPAL_SITE\" in\n*.live|*.prod) local ENV_COLOR=\"$COLOR_RED\" ;;\n*.stage|*.test) local ENV_COLOR=\"$COLOR_YELLOW\" ;;\n*.local) local ENV_COLOR=\"$COLOR_GREEN\" ;;\n*) local ENV_COLOR=\"$COLOR_BLUE\" ;;\nesac\n\n__DRUPAL_SITE=\"${ENV_COLOR}${__DRUPAL_SITE}${COLOR_NONE}\"\n}\n\nfi\n
    "},{"location":"examples/example.site.yml/","title":"site.yml","text":"
    #\n# A minimalist Drush site alias file.\n# See https://www.drush.org/latest/site-aliases/ for lots more documentation.\n#\n# File: self.site.yml\nlive:\nhost: www.domain.com\nuser: www-admin\nroot: /other/path/to/drupal\nuri: http://www.example.com\nssh:\noptions: '-p 100'\npaths:\ndrush-script: '/path/to/drush'\nenv-vars:\nPATH: /bin:/usr/bin:/home/www-admin/.composer/vendor/bin\nDRUPAL_ENV: live\ncommand:\nsite:\ninstall:\noptions:\nadmin-password: 'secret-secret'\nstage:\nhost: stage.domain.com\nuser: www-admin\nroot: /other/path/to/drupal\nuri: http://stage.example.com\n
    "},{"location":"examples/git-bisect.example.sh/","title":"git-bisect.sh","text":"
    #!/usr/bin/env sh\n\n#\n# Git bisect is a helpful way to discover which commit an error\n# occurred in.  This example file gives simple instructions for\n# using git bisect with Drush to quickly find erroneous commits\n# in Drush commands or Drupal modules, presuming that you can\n# trigger the error condition via Drush (e.g. using `drush php-eval`).\n#\n# Follow these simple steps:\n#\n#   $ git bisect start\n#   $ git bisect bad              # Tell git that the current commit does not work\n#   $ git bisect good bcadd5a     # Tell drush that the commithash 12345 worked fine\n#   $ git bisect run mytestscript.sh\n#\n# 'git bisect run' will continue to call 'git bisect good' and 'git bisect bad',\n# based on whether the script's exit code was 0 or 1, respectively.\n#\n# Replace 'mytestscript.sh' in the example above with a custom script that you\n# write yourself.  Use the example script at the end of this document as a\n# guide.  Replace the example command with one that calls the Drush command\n# that you would like to test, and replace the 'grep' string with a value\n# that appears when the error exists in the commit, but does not appear when\n# commit is okay.\n#\n# If you are using Drush to test Drupal or an external Drush module, use:\n#\n#   $ git bisect run drush mycommand --strict=2\n#\n# This presumes that there is one or more '[warning]' or '[error]'\n# messages emitted when there is a problem, and no warnings or errors\n# when the commit is okay.  Omit '--strict=2' to ignore warnings, and\n# signal failure only when 'error' messages are emitted.\n#\n# If you need to test for an error condition explicitly, to find errors\n# that do not return any warning or error log messages on their own, you\n# can use the Drush php-eval command to force an error when `myfunction()`\n# returns FALSE. Replace 'myfunction()' with the name of an appropriate\n# function in your module that can be used to detect the error condition\n# you are looking for.\n#\n#   $ git bisect run drush ev 'if(!myfunction()) { return drush_set_error(\"ERR\"); }'\n#\ndrush mycommand --myoption 2>&1 | grep -q 'string that indicates there was a problem'\nif [ $? == 0 ] ; then\nexit 1\nelse\nexit 0\nfi\n
    "},{"location":"examples/helloworld.script/","title":"Helloworld.script","text":"
    <?php\n\n//\n// This example demonstrates how to write a drush\n// script. These scripts are run with the php:script command.\n//\nuse Drush\\Drush;\n\n$this->output()->writeln(\"Hello world!\");\n$this->output()->writeln(\"The extra options/arguments to this command were:\");\n$this->output()->writeln(print_r($extra, true));\n\n//\n// We can check which site was bootstrapped via\n// the '@self' alias, which is defined only if\n// there is a bootstrapped site.\n//\n$self = Drush::aliasManager()->getSelf();;\nif (!$self->hasRoot()) {\n  $this->output()->writeln('No bootstrapped site.');\n}\nelse {\n  $this->output()->writeln('The following site is bootstrapped:');\n  $this->output()->writeln(print_r($self->legacyRecord(), true));\n}\n
    "},{"location":"generators/all/","title":"All generators","text":"

    Tip

    Press the / key to Search for a command. Or use your browser's Find in Page feature.

    "},{"location":"generators/composer/","title":"composer","text":"

    Generates a composer.json file

    "},{"location":"generators/composer/#examples","title":"Examples","text":""},{"location":"generators/composer/#options","title":"Options","text":""},{"location":"generators/composer/#topics","title":"Topics","text":""},{"location":"generators/composer/#aliases","title":"Aliases","text":""},{"location":"generators/controller/","title":"controller","text":"

    Generates a controller

    "},{"location":"generators/controller/#examples","title":"Examples","text":""},{"location":"generators/controller/#options","title":"Options","text":""},{"location":"generators/controller/#topics","title":"Topics","text":""},{"location":"generators/drush_alias-file/","title":"drush:alias-file","text":"

    Generates a Drush site alias file.

    "},{"location":"generators/drush_alias-file/#examples","title":"Examples","text":""},{"location":"generators/drush_alias-file/#options","title":"Options","text":""},{"location":"generators/drush_alias-file/#topics","title":"Topics","text":""},{"location":"generators/drush_alias-file/#aliases","title":"Aliases","text":""},{"location":"generators/drush_command-file/","title":"drush:command-file","text":"

    Generates a Drush command file.

    "},{"location":"generators/drush_command-file/#examples","title":"Examples","text":""},{"location":"generators/drush_command-file/#options","title":"Options","text":""},{"location":"generators/drush_command-file/#topics","title":"Topics","text":""},{"location":"generators/drush_command-file/#aliases","title":"Aliases","text":""},{"location":"generators/drush_generator/","title":"drush:generator","text":"

    Generates Drush generator

    "},{"location":"generators/drush_generator/#examples","title":"Examples","text":""},{"location":"generators/drush_generator/#options","title":"Options","text":""},{"location":"generators/drush_generator/#topics","title":"Topics","text":""},{"location":"generators/drush_generator/#aliases","title":"Aliases","text":""},{"location":"generators/drush_symfony-command/","title":"drush:symfony-command","text":"

    Generates Symfony console command

    "},{"location":"generators/drush_symfony-command/#examples","title":"Examples","text":""},{"location":"generators/drush_symfony-command/#options","title":"Options","text":""},{"location":"generators/drush_symfony-command/#topics","title":"Topics","text":""},{"location":"generators/drush_symfony-command/#aliases","title":"Aliases","text":""},{"location":"generators/entity_bundle-class/","title":"entity:bundle-class","text":"

    11.0+

    Generate a bundle class for a content entity.

    "},{"location":"generators/entity_bundle-class/#examples","title":"Examples","text":""},{"location":"generators/entity_bundle-class/#options","title":"Options","text":""},{"location":"generators/entity_bundle-class/#topics","title":"Topics","text":""},{"location":"generators/entity_bundle-class/#aliases","title":"Aliases","text":""},{"location":"generators/entity_configuration/","title":"entity:configuration","text":"

    Generates configuration entity

    "},{"location":"generators/entity_configuration/#examples","title":"Examples","text":""},{"location":"generators/entity_configuration/#options","title":"Options","text":""},{"location":"generators/entity_configuration/#topics","title":"Topics","text":""},{"location":"generators/entity_configuration/#aliases","title":"Aliases","text":""},{"location":"generators/entity_content/","title":"entity:content","text":"

    Generates content entity

    "},{"location":"generators/entity_content/#examples","title":"Examples","text":""},{"location":"generators/entity_content/#options","title":"Options","text":""},{"location":"generators/entity_content/#topics","title":"Topics","text":""},{"location":"generators/entity_content/#aliases","title":"Aliases","text":""},{"location":"generators/field/","title":"field","text":"

    Generates a field

    "},{"location":"generators/field/#examples","title":"Examples","text":""},{"location":"generators/field/#options","title":"Options","text":""},{"location":"generators/field/#topics","title":"Topics","text":""},{"location":"generators/form_config/","title":"form:config","text":"

    Generates a configuration form

    "},{"location":"generators/form_config/#examples","title":"Examples","text":""},{"location":"generators/form_config/#options","title":"Options","text":""},{"location":"generators/form_config/#topics","title":"Topics","text":""},{"location":"generators/form_config/#aliases","title":"Aliases","text":""},{"location":"generators/form_confirm/","title":"form:confirm","text":"

    Generates a confirmation form

    "},{"location":"generators/form_confirm/#examples","title":"Examples","text":""},{"location":"generators/form_confirm/#options","title":"Options","text":""},{"location":"generators/form_confirm/#topics","title":"Topics","text":""},{"location":"generators/form_confirm/#aliases","title":"Aliases","text":""},{"location":"generators/form_simple/","title":"form:simple","text":"

    Generates simple form

    "},{"location":"generators/form_simple/#examples","title":"Examples","text":""},{"location":"generators/form_simple/#options","title":"Options","text":""},{"location":"generators/form_simple/#topics","title":"Topics","text":""},{"location":"generators/form_simple/#aliases","title":"Aliases","text":""},{"location":"generators/hook/","title":"hook","text":"

    Generates a hook

    "},{"location":"generators/hook/#examples","title":"Examples","text":""},{"location":"generators/hook/#options","title":"Options","text":""},{"location":"generators/hook/#topics","title":"Topics","text":""},{"location":"generators/install-file/","title":"install-file","text":"

    Generates an install file

    "},{"location":"generators/install-file/#examples","title":"Examples","text":""},{"location":"generators/install-file/#options","title":"Options","text":""},{"location":"generators/install-file/#topics","title":"Topics","text":""},{"location":"generators/javascript/","title":"javascript","text":"

    Generates Drupal JavaScript file

    "},{"location":"generators/javascript/#examples","title":"Examples","text":""},{"location":"generators/javascript/#options","title":"Options","text":""},{"location":"generators/javascript/#topics","title":"Topics","text":""},{"location":"generators/layout/","title":"layout","text":"

    Generates a layout

    "},{"location":"generators/layout/#examples","title":"Examples","text":""},{"location":"generators/layout/#options","title":"Options","text":""},{"location":"generators/layout/#topics","title":"Topics","text":""},{"location":"generators/misc_apache-virtual-host/","title":"misc:apache-virtual-host","text":"

    Generates an Apache site configuration file

    "},{"location":"generators/misc_apache-virtual-host/#examples","title":"Examples","text":""},{"location":"generators/misc_apache-virtual-host/#options","title":"Options","text":""},{"location":"generators/misc_apache-virtual-host/#topics","title":"Topics","text":""},{"location":"generators/misc_apache-virtual-host/#aliases","title":"Aliases","text":""},{"location":"generators/misc_nginx-virtual-host/","title":"misc:nginx-virtual-host","text":"

    Generates an Nginx site configuration file

    "},{"location":"generators/misc_nginx-virtual-host/#examples","title":"Examples","text":""},{"location":"generators/misc_nginx-virtual-host/#options","title":"Options","text":""},{"location":"generators/misc_nginx-virtual-host/#topics","title":"Topics","text":""},{"location":"generators/misc_nginx-virtual-host/#aliases","title":"Aliases","text":""},{"location":"generators/module/","title":"module","text":"

    Generates Drupal module

    "},{"location":"generators/module/#examples","title":"Examples","text":""},{"location":"generators/module/#options","title":"Options","text":""},{"location":"generators/module/#topics","title":"Topics","text":""},{"location":"generators/phpstorm-meta/","title":"phpstorm-meta","text":"

    Generates PhpStorm metadata

    "},{"location":"generators/phpstorm-meta/#examples","title":"Examples","text":""},{"location":"generators/phpstorm-meta/#options","title":"Options","text":""},{"location":"generators/phpstorm-meta/#topics","title":"Topics","text":""},{"location":"generators/plugin_action/","title":"plugin:action","text":"

    Generates action plugin

    "},{"location":"generators/plugin_action/#examples","title":"Examples","text":""},{"location":"generators/plugin_action/#options","title":"Options","text":""},{"location":"generators/plugin_action/#topics","title":"Topics","text":""},{"location":"generators/plugin_action/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_block/","title":"plugin:block","text":"

    Generates block plugin

    "},{"location":"generators/plugin_block/#examples","title":"Examples","text":""},{"location":"generators/plugin_block/#options","title":"Options","text":""},{"location":"generators/plugin_block/#topics","title":"Topics","text":""},{"location":"generators/plugin_block/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_ckeditor/","title":"plugin:ckeditor","text":"

    Generates CKEditor plugin

    "},{"location":"generators/plugin_ckeditor/#examples","title":"Examples","text":""},{"location":"generators/plugin_ckeditor/#options","title":"Options","text":""},{"location":"generators/plugin_ckeditor/#topics","title":"Topics","text":""},{"location":"generators/plugin_ckeditor/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_condition/","title":"plugin:condition","text":"

    Generates condition plugin

    "},{"location":"generators/plugin_condition/#examples","title":"Examples","text":""},{"location":"generators/plugin_condition/#options","title":"Options","text":""},{"location":"generators/plugin_condition/#topics","title":"Topics","text":""},{"location":"generators/plugin_condition/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_constraint/","title":"plugin:constraint","text":"

    Generates constraint plugin

    "},{"location":"generators/plugin_constraint/#examples","title":"Examples","text":""},{"location":"generators/plugin_constraint/#options","title":"Options","text":""},{"location":"generators/plugin_constraint/#topics","title":"Topics","text":""},{"location":"generators/plugin_constraint/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_entity-reference-selection/","title":"plugin:entity-reference-selection","text":"

    Generates entity reference selection plugin

    "},{"location":"generators/plugin_entity-reference-selection/#examples","title":"Examples","text":""},{"location":"generators/plugin_entity-reference-selection/#options","title":"Options","text":""},{"location":"generators/plugin_entity-reference-selection/#topics","title":"Topics","text":""},{"location":"generators/plugin_entity-reference-selection/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_field_formatter/","title":"plugin:field:formatter","text":"

    Generates field formatter plugin

    "},{"location":"generators/plugin_field_formatter/#examples","title":"Examples","text":""},{"location":"generators/plugin_field_formatter/#options","title":"Options","text":""},{"location":"generators/plugin_field_formatter/#topics","title":"Topics","text":""},{"location":"generators/plugin_field_formatter/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_field_type/","title":"plugin:field:type","text":"

    Generates field type plugin

    "},{"location":"generators/plugin_field_type/#examples","title":"Examples","text":""},{"location":"generators/plugin_field_type/#options","title":"Options","text":""},{"location":"generators/plugin_field_type/#topics","title":"Topics","text":""},{"location":"generators/plugin_field_type/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_field_widget/","title":"plugin:field:widget","text":"

    Generates field widget plugin

    "},{"location":"generators/plugin_field_widget/#examples","title":"Examples","text":""},{"location":"generators/plugin_field_widget/#options","title":"Options","text":""},{"location":"generators/plugin_field_widget/#topics","title":"Topics","text":""},{"location":"generators/plugin_field_widget/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_filter/","title":"plugin:filter","text":"

    Generates filter plugin

    "},{"location":"generators/plugin_filter/#examples","title":"Examples","text":""},{"location":"generators/plugin_filter/#options","title":"Options","text":""},{"location":"generators/plugin_filter/#topics","title":"Topics","text":""},{"location":"generators/plugin_filter/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_manager/","title":"plugin:manager","text":"

    Generates plugin manager

    "},{"location":"generators/plugin_manager/#examples","title":"Examples","text":""},{"location":"generators/plugin_manager/#options","title":"Options","text":""},{"location":"generators/plugin_manager/#topics","title":"Topics","text":""},{"location":"generators/plugin_menu-link/","title":"plugin:menu-link","text":"

    Generates menu-link plugin

    "},{"location":"generators/plugin_menu-link/#examples","title":"Examples","text":""},{"location":"generators/plugin_menu-link/#options","title":"Options","text":""},{"location":"generators/plugin_menu-link/#topics","title":"Topics","text":""},{"location":"generators/plugin_menu-link/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_migrate_destination/","title":"plugin:migrate:destination","text":"

    Generates migrate destination plugin

    "},{"location":"generators/plugin_migrate_destination/#examples","title":"Examples","text":""},{"location":"generators/plugin_migrate_destination/#options","title":"Options","text":""},{"location":"generators/plugin_migrate_destination/#topics","title":"Topics","text":""},{"location":"generators/plugin_migrate_destination/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_migrate_process/","title":"plugin:migrate:process","text":"

    Generates migrate process plugin

    "},{"location":"generators/plugin_migrate_process/#examples","title":"Examples","text":""},{"location":"generators/plugin_migrate_process/#options","title":"Options","text":""},{"location":"generators/plugin_migrate_process/#topics","title":"Topics","text":""},{"location":"generators/plugin_migrate_process/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_migrate_source/","title":"plugin:migrate:source","text":"

    Generates migrate source plugin

    "},{"location":"generators/plugin_migrate_source/#examples","title":"Examples","text":""},{"location":"generators/plugin_migrate_source/#options","title":"Options","text":""},{"location":"generators/plugin_migrate_source/#topics","title":"Topics","text":""},{"location":"generators/plugin_migrate_source/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_queue-worker/","title":"plugin:queue-worker","text":"

    Generates queue worker plugin

    "},{"location":"generators/plugin_queue-worker/#examples","title":"Examples","text":""},{"location":"generators/plugin_queue-worker/#options","title":"Options","text":""},{"location":"generators/plugin_queue-worker/#topics","title":"Topics","text":""},{"location":"generators/plugin_queue-worker/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_rest-resource/","title":"plugin:rest-resource","text":"

    Generates rest resource plugin

    "},{"location":"generators/plugin_rest-resource/#examples","title":"Examples","text":""},{"location":"generators/plugin_rest-resource/#options","title":"Options","text":""},{"location":"generators/plugin_rest-resource/#topics","title":"Topics","text":""},{"location":"generators/plugin_rest-resource/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_views_argument-default/","title":"plugin:views:argument-default","text":"

    Generates views default argument plugin

    "},{"location":"generators/plugin_views_argument-default/#examples","title":"Examples","text":""},{"location":"generators/plugin_views_argument-default/#options","title":"Options","text":""},{"location":"generators/plugin_views_argument-default/#topics","title":"Topics","text":""},{"location":"generators/plugin_views_argument-default/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_views_field/","title":"plugin:views:field","text":"

    Generates views field plugin

    "},{"location":"generators/plugin_views_field/#examples","title":"Examples","text":""},{"location":"generators/plugin_views_field/#options","title":"Options","text":""},{"location":"generators/plugin_views_field/#topics","title":"Topics","text":""},{"location":"generators/plugin_views_field/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_views_style/","title":"plugin:views:style","text":"

    Generates views style plugin

    "},{"location":"generators/plugin_views_style/#examples","title":"Examples","text":""},{"location":"generators/plugin_views_style/#options","title":"Options","text":""},{"location":"generators/plugin_views_style/#topics","title":"Topics","text":""},{"location":"generators/plugin_views_style/#aliases","title":"Aliases","text":""},{"location":"generators/render-element/","title":"render-element","text":"

    Generates Drupal render element

    "},{"location":"generators/render-element/#examples","title":"Examples","text":""},{"location":"generators/render-element/#options","title":"Options","text":""},{"location":"generators/render-element/#topics","title":"Topics","text":""},{"location":"generators/service-provider/","title":"service-provider","text":"

    Generates a service provider

    "},{"location":"generators/service-provider/#examples","title":"Examples","text":""},{"location":"generators/service-provider/#options","title":"Options","text":""},{"location":"generators/service-provider/#topics","title":"Topics","text":""},{"location":"generators/service_access-checker/","title":"service:access-checker","text":"

    Generates an access checker service

    "},{"location":"generators/service_access-checker/#examples","title":"Examples","text":""},{"location":"generators/service_access-checker/#options","title":"Options","text":""},{"location":"generators/service_access-checker/#topics","title":"Topics","text":""},{"location":"generators/service_access-checker/#aliases","title":"Aliases","text":""},{"location":"generators/service_breadcrumb-builder/","title":"service:breadcrumb-builder","text":"

    Generates a breadcrumb builder service

    "},{"location":"generators/service_breadcrumb-builder/#examples","title":"Examples","text":""},{"location":"generators/service_breadcrumb-builder/#options","title":"Options","text":""},{"location":"generators/service_breadcrumb-builder/#topics","title":"Topics","text":""},{"location":"generators/service_breadcrumb-builder/#aliases","title":"Aliases","text":""},{"location":"generators/service_cache-context/","title":"service:cache-context","text":"

    Generates a cache context service

    "},{"location":"generators/service_cache-context/#examples","title":"Examples","text":""},{"location":"generators/service_cache-context/#options","title":"Options","text":""},{"location":"generators/service_cache-context/#topics","title":"Topics","text":""},{"location":"generators/service_cache-context/#aliases","title":"Aliases","text":""},{"location":"generators/service_custom/","title":"service:custom","text":"

    Generates a custom Drupal service

    "},{"location":"generators/service_custom/#examples","title":"Examples","text":""},{"location":"generators/service_custom/#options","title":"Options","text":""},{"location":"generators/service_custom/#topics","title":"Topics","text":""},{"location":"generators/service_custom/#aliases","title":"Aliases","text":""},{"location":"generators/service_event-subscriber/","title":"service:event-subscriber","text":"

    Generates an event subscriber

    "},{"location":"generators/service_event-subscriber/#examples","title":"Examples","text":""},{"location":"generators/service_event-subscriber/#options","title":"Options","text":""},{"location":"generators/service_event-subscriber/#topics","title":"Topics","text":""},{"location":"generators/service_event-subscriber/#aliases","title":"Aliases","text":""},{"location":"generators/service_logger/","title":"service:logger","text":"

    Generates a logger service

    "},{"location":"generators/service_logger/#examples","title":"Examples","text":""},{"location":"generators/service_logger/#options","title":"Options","text":""},{"location":"generators/service_logger/#topics","title":"Topics","text":""},{"location":"generators/service_logger/#aliases","title":"Aliases","text":""},{"location":"generators/service_middleware/","title":"service:middleware","text":"

    Generates a middleware

    "},{"location":"generators/service_middleware/#examples","title":"Examples","text":""},{"location":"generators/service_middleware/#options","title":"Options","text":""},{"location":"generators/service_middleware/#topics","title":"Topics","text":""},{"location":"generators/service_middleware/#aliases","title":"Aliases","text":""},{"location":"generators/service_param-converter/","title":"service:param-converter","text":"

    Generates a param converter service

    "},{"location":"generators/service_param-converter/#examples","title":"Examples","text":""},{"location":"generators/service_param-converter/#options","title":"Options","text":""},{"location":"generators/service_param-converter/#topics","title":"Topics","text":""},{"location":"generators/service_param-converter/#aliases","title":"Aliases","text":""},{"location":"generators/service_path-processor/","title":"service:path-processor","text":"

    Generates a path processor service

    "},{"location":"generators/service_path-processor/#examples","title":"Examples","text":""},{"location":"generators/service_path-processor/#options","title":"Options","text":""},{"location":"generators/service_path-processor/#topics","title":"Topics","text":""},{"location":"generators/service_path-processor/#aliases","title":"Aliases","text":""},{"location":"generators/service_request-policy/","title":"service:request-policy","text":"

    Generates a request policy service

    "},{"location":"generators/service_request-policy/#examples","title":"Examples","text":""},{"location":"generators/service_request-policy/#options","title":"Options","text":""},{"location":"generators/service_request-policy/#topics","title":"Topics","text":""},{"location":"generators/service_request-policy/#aliases","title":"Aliases","text":""},{"location":"generators/service_response-policy/","title":"service:response-policy","text":"

    Generates a response policy service

    "},{"location":"generators/service_response-policy/#examples","title":"Examples","text":""},{"location":"generators/service_response-policy/#options","title":"Options","text":""},{"location":"generators/service_response-policy/#topics","title":"Topics","text":""},{"location":"generators/service_response-policy/#aliases","title":"Aliases","text":""},{"location":"generators/service_route-subscriber/","title":"service:route-subscriber","text":"

    Generates a route subscriber

    "},{"location":"generators/service_route-subscriber/#examples","title":"Examples","text":""},{"location":"generators/service_route-subscriber/#options","title":"Options","text":""},{"location":"generators/service_route-subscriber/#topics","title":"Topics","text":""},{"location":"generators/service_route-subscriber/#aliases","title":"Aliases","text":""},{"location":"generators/service_theme-negotiator/","title":"service:theme-negotiator","text":"

    Generates a theme negotiator

    "},{"location":"generators/service_theme-negotiator/#examples","title":"Examples","text":""},{"location":"generators/service_theme-negotiator/#options","title":"Options","text":""},{"location":"generators/service_theme-negotiator/#topics","title":"Topics","text":""},{"location":"generators/service_theme-negotiator/#aliases","title":"Aliases","text":""},{"location":"generators/service_twig-extension/","title":"service:twig-extension","text":"

    Generates Twig extension service

    "},{"location":"generators/service_twig-extension/#examples","title":"Examples","text":""},{"location":"generators/service_twig-extension/#options","title":"Options","text":""},{"location":"generators/service_twig-extension/#topics","title":"Topics","text":""},{"location":"generators/service_twig-extension/#aliases","title":"Aliases","text":""},{"location":"generators/service_uninstall-validator/","title":"service:uninstall-validator","text":"

    Generates a uninstall validator service

    "},{"location":"generators/service_uninstall-validator/#examples","title":"Examples","text":""},{"location":"generators/service_uninstall-validator/#options","title":"Options","text":""},{"location":"generators/service_uninstall-validator/#topics","title":"Topics","text":""},{"location":"generators/service_uninstall-validator/#aliases","title":"Aliases","text":""},{"location":"generators/test_browser/","title":"test:browser","text":"

    Generates a browser based test

    "},{"location":"generators/test_browser/#examples","title":"Examples","text":""},{"location":"generators/test_browser/#options","title":"Options","text":""},{"location":"generators/test_browser/#topics","title":"Topics","text":""},{"location":"generators/test_browser/#aliases","title":"Aliases","text":""},{"location":"generators/test_kernel/","title":"test:kernel","text":"

    Generates a kernel based test

    "},{"location":"generators/test_kernel/#examples","title":"Examples","text":""},{"location":"generators/test_kernel/#options","title":"Options","text":""},{"location":"generators/test_kernel/#topics","title":"Topics","text":""},{"location":"generators/test_kernel/#aliases","title":"Aliases","text":""},{"location":"generators/test_nightwatch/","title":"test:nightwatch","text":"

    Generates a nightwatch test

    "},{"location":"generators/test_nightwatch/#examples","title":"Examples","text":""},{"location":"generators/test_nightwatch/#options","title":"Options","text":""},{"location":"generators/test_nightwatch/#topics","title":"Topics","text":""},{"location":"generators/test_nightwatch/#aliases","title":"Aliases","text":""},{"location":"generators/test_unit/","title":"test:unit","text":"

    Generates a unit test

    "},{"location":"generators/test_unit/#examples","title":"Examples","text":""},{"location":"generators/test_unit/#options","title":"Options","text":""},{"location":"generators/test_unit/#topics","title":"Topics","text":""},{"location":"generators/test_unit/#aliases","title":"Aliases","text":""},{"location":"generators/test_webdriver/","title":"test:webdriver","text":"

    Generates a test that supports JavaScript

    "},{"location":"generators/test_webdriver/#examples","title":"Examples","text":""},{"location":"generators/test_webdriver/#options","title":"Options","text":""},{"location":"generators/test_webdriver/#topics","title":"Topics","text":""},{"location":"generators/test_webdriver/#aliases","title":"Aliases","text":""},{"location":"generators/theme/","title":"theme","text":"

    Generates Drupal theme

    "},{"location":"generators/theme/#examples","title":"Examples","text":""},{"location":"generators/theme/#options","title":"Options","text":""},{"location":"generators/theme/#topics","title":"Topics","text":""},{"location":"generators/theme_settings/","title":"theme:settings","text":"

    Generates Drupal theme-settings.php file

    "},{"location":"generators/theme_settings/#examples","title":"Examples","text":""},{"location":"generators/theme_settings/#options","title":"Options","text":""},{"location":"generators/theme_settings/#topics","title":"Topics","text":""},{"location":"generators/yml_breakpoints/","title":"yml:breakpoints","text":"

    Generates a breakpoints yml file

    "},{"location":"generators/yml_breakpoints/#examples","title":"Examples","text":""},{"location":"generators/yml_breakpoints/#options","title":"Options","text":""},{"location":"generators/yml_breakpoints/#topics","title":"Topics","text":""},{"location":"generators/yml_breakpoints/#aliases","title":"Aliases","text":""},{"location":"generators/yml_links_action/","title":"yml:links:action","text":"

    Generates a links.action yml file

    "},{"location":"generators/yml_links_action/#examples","title":"Examples","text":""},{"location":"generators/yml_links_action/#options","title":"Options","text":""},{"location":"generators/yml_links_action/#topics","title":"Topics","text":""},{"location":"generators/yml_links_action/#aliases","title":"Aliases","text":""},{"location":"generators/yml_links_contextual/","title":"yml:links:contextual","text":"

    Generates links.contextual yml file

    "},{"location":"generators/yml_links_contextual/#examples","title":"Examples","text":""},{"location":"generators/yml_links_contextual/#options","title":"Options","text":""},{"location":"generators/yml_links_contextual/#topics","title":"Topics","text":""},{"location":"generators/yml_links_contextual/#aliases","title":"Aliases","text":""},{"location":"generators/yml_links_menu/","title":"yml:links:menu","text":"

    Generates a links.menu yml file

    "},{"location":"generators/yml_links_menu/#examples","title":"Examples","text":""},{"location":"generators/yml_links_menu/#options","title":"Options","text":""},{"location":"generators/yml_links_menu/#topics","title":"Topics","text":""},{"location":"generators/yml_links_menu/#aliases","title":"Aliases","text":""},{"location":"generators/yml_links_task/","title":"yml:links:task","text":"

    Generates a links.task yml file

    "},{"location":"generators/yml_links_task/#examples","title":"Examples","text":""},{"location":"generators/yml_links_task/#options","title":"Options","text":""},{"location":"generators/yml_links_task/#topics","title":"Topics","text":""},{"location":"generators/yml_links_task/#aliases","title":"Aliases","text":""},{"location":"generators/yml_migration/","title":"yml:migration","text":"

    Generates a migration yml file

    "},{"location":"generators/yml_migration/#examples","title":"Examples","text":""},{"location":"generators/yml_migration/#options","title":"Options","text":""},{"location":"generators/yml_migration/#topics","title":"Topics","text":""},{"location":"generators/yml_migration/#aliases","title":"Aliases","text":""},{"location":"generators/yml_module-libraries/","title":"yml:module-libraries","text":"

    Generates module libraries yml file

    "},{"location":"generators/yml_module-libraries/#examples","title":"Examples","text":""},{"location":"generators/yml_module-libraries/#options","title":"Options","text":""},{"location":"generators/yml_module-libraries/#topics","title":"Topics","text":""},{"location":"generators/yml_module-libraries/#aliases","title":"Aliases","text":""},{"location":"generators/yml_permissions/","title":"yml:permissions","text":"

    Generates a permissions yml file

    "},{"location":"generators/yml_permissions/#examples","title":"Examples","text":""},{"location":"generators/yml_permissions/#options","title":"Options","text":""},{"location":"generators/yml_permissions/#topics","title":"Topics","text":""},{"location":"generators/yml_permissions/#aliases","title":"Aliases","text":""},{"location":"generators/yml_routing/","title":"yml:routing","text":"

    Generates a routing yml file

    "},{"location":"generators/yml_routing/#examples","title":"Examples","text":""},{"location":"generators/yml_routing/#options","title":"Options","text":""},{"location":"generators/yml_routing/#topics","title":"Topics","text":""},{"location":"generators/yml_routing/#aliases","title":"Aliases","text":""},{"location":"generators/yml_services/","title":"yml:services","text":"

    Generates a services yml file

    "},{"location":"generators/yml_services/#examples","title":"Examples","text":""},{"location":"generators/yml_services/#options","title":"Options","text":""},{"location":"generators/yml_services/#topics","title":"Topics","text":""},{"location":"generators/yml_services/#aliases","title":"Aliases","text":""},{"location":"generators/yml_theme-libraries/","title":"yml:theme-libraries","text":"

    Generates theme libraries yml file

    "},{"location":"generators/yml_theme-libraries/#examples","title":"Examples","text":""},{"location":"generators/yml_theme-libraries/#options","title":"Options","text":""},{"location":"generators/yml_theme-libraries/#topics","title":"Topics","text":""},{"location":"generators/yml_theme-libraries/#aliases","title":"Aliases","text":""}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Home","text":"

    Drush is a command line shell and Unix scripting interface for Drupal. Drush core ships with lots of useful commands and generators. Similarly, it runs update.php, executes SQL queries, runs content migrations, and misc utilities like cron or cache rebuild. Drush can be extended by 3rd party commandfiles.

    "},{"location":"#resources","title":"Resources","text":""},{"location":"#support","title":"Support","text":""},{"location":"#faq","title":"FAQ","text":""},{"location":"#what-does-drush-stand-for","title":"What does Drush stand for?","text":"

    A: The Drupal Shell.

    "},{"location":"#how-do-i-pronounce-drush","title":"How do I pronounce Drush?","text":"

    Some people pronounce the dru with a long 'u' like Drupal. Fidelity points go to them, but they are in the minority. Most pronounce Drush so that it rhymes with hush, rush, flush, etc. This is the preferred pronunciation.

    "},{"location":"#credits","title":"Credits","text":""},{"location":"bootstrap/","title":"The Drush Bootstrap Process","text":"

    When preparing to run a command, Drush works by bootstrapping the Drupal environment in very much the same way that is done during a normal page request from the web server, so most Drush commands run in the context of a fully-initialized website.

    For efficiency and convenience, some Drush commands can work without first bootstrapping a Drupal site, or by only partially bootstrapping a site. This is faster than a full bootstrap. It is also a matter of convenience, because some commands are useful even when you don't have a working Drupal site.

    Commands may specify their bootstrap level with via an attribute or an annotation. Commands supplied by Drupal modules are always full.

    PHP8 AttributeAnnotation
    use Drush\\Attributes as CLI;\n\n#[CLI\\Bootstrap(level: DrupalBootLevels::NONE)]\npublic function fetch($search = null, $options = ['image-viewer' => 'open', 'google-custom-search-api-key' => 'AIza']) {\n    $this->doFetch($search, $options);\n}\n
    /**\n * @bootstrap none\n*/\npublic function fetch($search = null, $options = ['image-viewer' => 'open', 'google-custom-search-api-key' => 'AIza']) {\n    $this->doFetch($search, $options);\n}\n

    Prior to bootstrapping, Drush goes through the preflight process, where the following things occur:

    Preflight

    1. Commandline arguments are parsed.
    2. Configuration files are read.
    3. The site-alias included on the commandline is loaded if present.
    4. The local selected site is determined, if any.
    5. Dependency injection is done.
    6. Global commandfiles are loaded. Commandfiles that ship with modules are loaded later, during bootstrap @full.
    7. The command is dispatched via the Symfony Console component.

    Bootstrapping is done from a Symfony Console command hook. The different bootstrap levels are described below.

    "},{"location":"bootstrap/#none","title":"none","text":"

    Only run Drush preflight, without considering Drupal at all. Any code that operates on the Drush installation, and not specifically any Drupal directory, should bootstrap to this phase.

    "},{"location":"bootstrap/#root","title":"root","text":"

    Set up and test for a valid Drupal root, either through the --root options, or evaluated based on the current working directory. Any code that interacts with an entire Drupal installation, and not a specific site on the Drupal installation should use this bootstrap phase.

    "},{"location":"bootstrap/#site","title":"site","text":"

    Set up a Drupal site directory and the correct environment variables to allow Drupal to find the configuration file. If no site is specified with the --uri options, Drush will assume the site is 'default', which mimics Drupal's behaviour. Note that it is necessary to specify a full URI, e.g. --uri=http://example.com, in order for certain Drush commands and Drupal modules to behave correctly. See the Drush configuration for more information. Any code that needs to modify or interact with a specific Drupal site's settings.php file should bootstrap to this phase.

    "},{"location":"bootstrap/#configuration","title":"configuration","text":"

    Load the settings from the Drupal sites directory. This phase is analogous to the DRUPAL_BOOTSTRAP_CONFIGURATION bootstrap phase in Drupal itself, and this is also the first step where Drupal specific code is included. This phase is commonly used for code that interacts with the Drupal install API, as both install.php and update.php start at this phase.

    "},{"location":"bootstrap/#database","title":"database","text":"

    Connect to the Drupal database using the database credentials loaded during the previous bootstrap phase. This phase is analogous to the DRUPAL_BOOTSTRAP_DATABASE bootstrap phase in Drupal. Any code that needs to interact with the Drupal database API needs to be bootstrapped to at least this phase.

    "},{"location":"bootstrap/#full","title":"full","text":"

    Fully initialize Drupal. This is analogous to the DRUPAL_BOOTSTRAP_FULL bootstrap phase in Drupal. Any code that interacts with the general Drupal API should be bootstrapped to this phase.

    "},{"location":"bootstrap/#max","title":"max","text":"

    This is not an actual bootstrap phase. Commands that use the \"max\" bootstrap level will cause Drush to bootstrap as far as possible, and then run the command regardless of the bootstrap phase that was reached. This is useful for Drush commands that work without a bootstrapped site, but that provide additional information or capabilities in the presence of a bootstrapped site. For example, drush status will show progressively more information the farther the site bootstraps.

    "},{"location":"commands/","title":"Creating Custom Commands","text":"

    Tip

    1. Drush 12 expects commandfiles to use a create() method to inject Drupal and Drush dependencies. Prior versions used a drush.services.yml file which is now deprecated and will be removed in Drush 13.
    2. Drush 12 expects all commandfiles in the <module-name>/Drush/<Commands|Generators> directory. The Drush subdirectory is a new requirement.

    Creating a new Drush command is easy. Follow the steps below.

    1. Run drush generate drush:command-file.
    2. Drush will prompt for the machine name of the module that should \"own\" the file. The module selected must already exist and be enabled. Use drush generate module to create a new module.
    3. Drush will then report that it created a commandfile. Edit as needed.
    4. Use the classes for the core Drush commands at /src/Commands as inspiration and documentation.
    5. See the dependency injection docs for interfaces you can implement to gain access to Drush config, Drupal site aliases, etc. Also note the create() method for injecting Drupal or Drush dependencies.
    6. Write PHPUnit tests based on Drush Test Traits.
    "},{"location":"commands/#attributes-or-annotations","title":"Attributes or Annotations","text":"

    The following are both valid ways to declare a command:

    PHP8 AttributesAnnotations
    use Drush\\Attributes as CLI;\n\n/**\n * Retrieve and display xkcd cartoons (attribute variant).\n */\n#[CLI\\Command(name: 'xkcd:fetch-attributes', aliases: ['xkcd-attributes'])]\n#[CLI\\Argument(name: 'search', description: 'Optional argument to retrieve the cartoons matching an index, keyword, or \"random\".')]\n#[CLI\\Option(name: 'image-viewer', description: 'Command to use to view images (e.g. xv, firefox).', suggestedValues: ['open', 'xv', 'firefox'])]\n#[CLI\\Option(name: 'google-custom-search-api-key', description: 'Google Custom Search API Key')]\n#[CLI\\Usage(name: 'drush xkcd', description: 'Retrieve and display the latest cartoon')]\n#[CLI\\Usage(name: 'drush xkcd sandwich', description: 'Retrieve and display cartoons about sandwiches.')]\npublic function fetch($search = null, $options = ['image-viewer' => 'open', 'google-custom-search-api-key' => 'AIza']) {\n    $this->doFetch($search, $options);\n}\n
    /**\n * @command xkcd:fetch\n * @param $search Optional argument to retrieve the cartoons matching an index number, keyword, or \"random\".\n * @option image-viewer Command to use to view images (e.g. xv, firefox).\n * @option google-custom-search-api-key Google Custom Search API Key.\n * @usage drush xkcd\n *   Retrieve and display the latest cartoon.\n * @usage drush xkcd sandwich\n *   Retrieve and display cartoons about sandwiches.\n * @aliases xkcd\n*/\npublic function fetch($search = null, $options = ['image-viewer' => 'open', 'google-custom-search-api-key' => 'AIza']) {\n    $this->doFetch($search, $options);\n}\n
    "},{"location":"commands/#altering-command-info","title":"Altering Command Info","text":"

    Drush command info (annotations/attributes) can be altered from other modules. This is done by creating and registering command info alterers. Alterers are classes that are able to intercept and manipulate an existing command annotation.

    In the module that wants to alter a command info, add a class that:

    1. The generator class namespace, relative to base namespace, should be Drupal\\<module-name>\\Drush\\CommandInfoAlterers and the class file should be located under the src/Drush/CommandInfoAlterers directory.
    2. The filename must have a name like FooCommandInfoAlterer.php. The prefix Foo can be whatever string you want. The file must end in CommandInfoAlterer.php.
    3. The class must implement the \\Consolidation\\AnnotatedCommand\\CommandInfoAltererInterface.
    4. Implement the alteration logic in the alterCommandInfo() method.
    5. Along with the alter code, it's strongly recommended to log a debug message explaining what exactly was altered. This makes things easier on others who may need to debug the interaction of the alter code with other modules. Also it's a good practice to inject the the logger in the class constructor.

    For an example, see WootCommandInfoAlterer provided by the testing 'woot' module.

    "},{"location":"commands/#symfony-console-commands","title":"Symfony Console Commands","text":"

    Drush lists and runs Symfony Console commands, in addition to more typical annotated commands. See this test and this commandfile.

    "},{"location":"commands/#auto-discovered-commands-psr4","title":"Auto-discovered commands (PSR4)","text":"

    Such commands are auto-discovered by their class PSR4 namespace and class/file name suffix. Drush will auto-discover commands if:

    Auto-discovered commandfiles should declare their Drush version compatibility via a conflict directive. For example, a Composer-managed site-wide command that works with both Drush 11 and Drush 12 might contain something similar to the following in its composer.json file:

        \"conflict\": {\n\"drush/drush\": \"<11.0\",\n}\n
    Using require in place of conflict is not recommended.

    Symlinked packages

    While it is good practice to make your custom commands into a Composer package, please beware that symlinked packages (by using the composer repository type Path) will not be discovered by Drush. When in development, it is recommended to specify your package's path in your drush.yml to have quick access to your commands.

    "},{"location":"commands/#site-wide-commands","title":"Site-wide Commands","text":"

    Commandfiles that are installed in a Drupal site and are not bundled inside a Drupal module are called site-wide commandfiles. Site-wide commands may either be added directly to the Drupal site's repository (e.g. for site-specific policy files), or via composer require. See the examples/Commands folder for examples. In general, it's preferable to use modules to carry your Drush commands.

    Here are some examples of valid commandfile names and namespaces:

    1. Simple
      • Filename: $PROJECT_ROOT/drush/Commands/ExampleCommands.php
      • Namespace: Drush\\Commands
    2. Nested in a subdirectory committed to the site's repository
      • Filename: $PROJECT_ROOT/drush/Commands/example/ExampleCommands.php
      • Namespace: Drush\\Commands\\example
    3. Nested in a subdirectory installed via a Composer package
      • Filename: $PROJECT_ROOT/drush/Commands/contrib/dev_modules/ExampleCommands.php
      • Namespace: Drush\\Commands\\dev_modules

    Note: Make sure you do not include src in the path to your command. Your command may not be discovered and have additional problems.

    If a commandfile is added via a Composer package, then it may declare any dependencies that it may need in its composer.json file. Site-wide commandfiles that are committed directly to a site's repository only have access to the dependencies already available in the site.

    A site-wide commandfile should have tests that run with each (major) version of Drush that is supported. You may model your test suite after the example drush extension project.

    "},{"location":"commands/#global-commands-discovered-by-configuration","title":"Global commands discovered by configuration","text":"

    Deprecation

    Configuration discovery has been deprecated and will be removed in a future version of Drush. It is recommended that you avoid global Drush commands, and favor site-wide or PSR4 discovered commandfiles instead. If you really need commands that are not part of any Drupal site, consider making a stand-alone script or custom .phar instead. See ahoy, Robo and g1a/starter as potential starting points.

    Global commandfiles discoverable by configuration are not supported by default; in order to enable them, you must configure your drush.yml configuration file to add an include search location.

    For example:

    drush:\npaths:\ninclude:\n- '${env.home}/.drush/commands'\n
    With this configuration in place, global commands may be placed as described in the Site-Wide Drush Commands section above. Global commandfiles may not declare any dependencies of their own; they may only use those dependencies already available via the autoloader.

    Tip

    1. The filename must be have a name like Commands/ExampleCommands.php
    2. The prefix Example can be whatever string you want.
    3. The file must end in Commands.php
      1. The directory above Commands must be one of:
        1. A Folder listed in the 'include' option. Include may be provided via config or via CLI.
        2. ../drush, /drush or /sites/all/drush. These paths are relative to Drupal root.
    "},{"location":"config-exporting/","title":"Exporting and Importing Configuration","text":"

    Drush provides commands to export, pull, and import Drupal configuration files.

    "},{"location":"config-exporting/#simple-value-changes","title":"Simple - value changes","text":"

    It is not necessary to alter configuration values to make simple value changes to configuration variables, as this may be done by the configuration override system.

    The configuration override system allows you to change configuration values for a given instance of a site (e.g. the development server) by setting configuration variables in the site's settings.php file. For example, to change the name of a local development site:

    $config['system.site']['name'] = 'Local Install of Awesome Widgets, Inc.';\n
    Note that the configuration override system is a Drupal feature, not a Drush feature. It should be the preferred method for changing configuration values on a per-environment basis; however, it does not work for some things, such as enabling and disabling modules.

    "},{"location":"config-exporting/#advanced-variation-by-environment","title":"Advanced - variation by environment","text":""},{"location":"cron/","title":"Running Drupal cron tasks from Drush","text":"

    Drupal cron tasks are often set up to be run via a wget/curl call to cron.php; this same task can also be accomplished via the cron command, which circumvents the need to provide a web server interface to cron.

    "},{"location":"cron/#quick-start","title":"Quick start","text":"

    If you just want to get started quickly, here is a crontab entry that will run cron once every hour at ten minutes after the hour:

    10 * * * * cd [DOCROOT] && /usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin COLUMNS=72 ../vendor/bin/drush --uri=your.drupalsite.org --quiet maint:status && /vendor/bin/drush --uri=your.drupalsite.org --quiet cron\n

    You should set up crontab to run your cron tasks as the same user that runs the web server; for example, if you run your web server as the user www-data:

    sudo crontab -u www-data -e\n

    You might need to edit the crontab entry shown above slightly for your particular setup; for example, if you have installed Drush to some directory other than /usr/local/drush, then you will need to adjust the path to drush appropriately. We'll break down the meaning of each section of the crontab entry in the documentation that continues below.

    "},{"location":"cron/#setting-the-schedule","title":"Setting the schedule","text":"

    See man 5 crontab for information on how to format the information in a crontab entry. In the example above, the schedule for the crontab is set by the string 10 * * * *. These fields are the minute, hour, day of month, month and day of week; * means essentially 'all values', so 10 * * * * will run any time the minute == 10 (once every hour).

    "},{"location":"cron/#setting-the-path","title":"Setting the PATH","text":"

    We use /usr/bin/env to run Drush so that we can set up some necessary environment variables that Drush needs to execute. By default, cron will run each command with an empty PATH, which would not work well with Drush. To find out what your PATH needs to be, just type:

    echo $PATH\n

    Take the value that is output and place it into your crontab entry in the place of the one shown above. You can remove any entry that is known to not be of interest to Drush (e.g. /usr/games), or is only useful in a graphic environment (e.g. /usr/X11/bin).

    "},{"location":"cron/#setting-columns","title":"Setting COLUMNS","text":"

    When running Drush in a terminal, the number of columns will be automatically determined by Drush by way of the tput command, which queries the active terminal to determine what the width of the screen is. When running Drush from cron, there will not be any terminal set, and the call to tput will produce an error message. Spurious error messages are undesirable, as cron is often configured to send email whenever any output is produced, so it is important to make an effort to insure that successful runs of cron complete with no output.

    In some cases, Drush is smart enough to recognize that there is no terminal -- if the terminal value is empty or \"dumb\", for example. However, there are some \"non-terminal\" values that Drush does not recognize, such as \"unknown.\" If you manually set COLUMNS, then Drush will respect your setting and will not attempt to call tput.

    "},{"location":"cron/#using-quiet","title":"Using --quiet","text":"

    By default, Drush will print a success message when the run of cron is completed. The --quiet flag will suppress these and other progress messages, again avoiding an unnecessary email message.

    "},{"location":"cron/#specifying-the-drupal-site-to-run","title":"Specifying the Drupal site to run","text":"

    There are many ways to tell Drush which Drupal site to select for the active command, and any may be used here. The example uses cd [DOCROOT], but you could also use the --root and --uri flags.

    "},{"location":"cron/#avoiding-maintenance-mode","title":"Avoiding Maintenance mode","text":"

    The call to maint:status checks to see if the site is in maintenance mode. If yes, cron will not run and the command returns a failure. It is not safe to run cron while the site is in maintenance. See https://drupal.slack.com/archives/C45SW3FLM/p1675287662331809.

    "},{"location":"dependency-injection/","title":"Dependency Injection","text":"

    Drush command files obtain references to the resources they need through a technique called dependency injection. When using this programing paradigm, a class by convention will never use the new operator to instantiate dependencies. Instead, it will store the other objects it needs in class variables, and provide a way for other code to assign an object to that variable.

    "},{"location":"dependency-injection/#types-of-injection","title":"Types of Injection","text":"

    There are two ways that a class can receive its dependencies. One is called \u201cconstructor injection\u201d, and the other is called \u201csetter injection\u201d.

    Example of constructor injection:

        public function __construct(DependencyType $service)\n    {\n        $this->service = $service;\n    }\n

    Example of setter injection:

        public function setService(DependencyType $service)\n    {\n        $this->service = $service;\n    }\n
    The code that is responsible for providing the dependencies a class needs is usually an object called the dependency injection container.

    "},{"location":"dependency-injection/#create-method","title":"create() method","text":"

    11.6+

    Tip

    Drush 11 and prior required dependency injection via a drush.services.yml file. This approach is deprecated in Drush 12 and will be removed in Drush 13.

    Drush command files can inject services by adding a create() method to the commandfile. See creating commands for instructions on how to use the Drupal Code Generator to create a simple command file starter. A create() method and a constructor will look something like this:

    class WootStaticFactoryCommands extends DrushCommands\n{\n    protected $configFactory;\n\n    protected function __construct($configFactory)\n    {\n        $this->configFactory = $configFactory;\n    }\n\n    public static function create(ContainerInterface $container, DrushContainer $drush): self\n    {\n        return new static($container->get('config.factory'));\n    }\n
    See the Drupal Documentation for details on how to inject Drupal services into your command file. Drush's approach mimics Drupal's blocks, forms, and controllers.

    Note that if you do not need to pull any services from the Drush container, then you may omit the second parameter to the create() method.

    "},{"location":"dependency-injection/#createearly-method","title":"createEarly() method","text":"

    12.0+ Drush commands that need to be instantiated prior to bootstrap may do so by utilizing the createEarly() static factory. This method looks and functions exacty like the create() static factory, except it is only passed the Drush container. The Drupal container is not available to command handlers that use createEarly().

    Note also that Drush commands packaged with Drupal modules are not discovered until after Drupal bootstraps, and therefore cannot use createEarly(). This mechanism is only usable by PSR-4 discovered commands packaged with Composer projects that are not Drupal modules.

    "},{"location":"dependency-injection/#inflection","title":"Inflection","text":"

    Tip

    Inflection is deprecated in Drush 12; use create() or createEarly() instead. Some classes are no longer available for inflection in Drush 12, and more (or potentially all) may be removed in Drush 13.

    Drush will also inject dependencies that it provides using a technique called inflection. Inflection is a kind of dependency injection that works by way of a set of provided inflection interfaces, one for each available service. Each of these interfaces will define one or more setter methods (usually only one); these will automatically be called by Drush when the commandfile object is instantiated. The command only needs to implement this method and save the provided object in a class field. There is usually a corresponding trait that may be included via a use statement to fulfill this requirement.

    For example:

    <?php\nnamespace Drupal\\my_module\\Commands;\n\nuse Drush\\Commands\\DrushCommands;\nuse Consolidation\\OutputFormatters\\StructuredData\\ListDataFromKeys;\nuse Consolidation\\SiteAlias\\SiteAliasManagerAwareInterface;\nuse Consolidation\\SiteAlias\\SiteAliasManagerAwareTrait;\n\nclass MyModuleCommands extends DrushCommands implements SiteAliasManagerAwareInterface\n{\n  use SiteAliasManagerAwareTrait;\n\n  /**\n   * Prints the current alias name and info.\n   */\n  #[CLI\\Command(name: 'mymodule:myAlias')]\n  public function myAlias(): ListDataFromKeys \n  {\n    $selfAlias = $this->siteAliasManager()->getSelf();\n    $this->logger()->success(\u2018The current alias is {name}\u2019, [\u2018name\u2019 => $selfAlias]);\n    return new ListDataFromKeys($aliasRecord->export());\n  }\n}\n

    All Drush command files extend DrushCommands. DrushCommands implements ConfigAwareInterface, IOAwareInterface, LoggerAwareInterface, which gives access to $this->getConfig(), $this->logger() and other ways to do input and output. See the IO documentation for more information.

    Any additional services that are desired must be injected by implementing the appropriate inflection interface.

    Additional Interfaces:

    Note that although the autoloader and Drush dependency injection container is available and may be injected into your command file if needed, this should be avoided. Favor using services that can be injected from Drupal or Drush. Some of the objects in the container are not part of the Drush public API, and may not maintain compatibility in minor and patch releases.

    "},{"location":"deploycommand/","title":"Deploy","text":"

    10.3+

    The deploy command standardizes how Drupal deployments work. The intent is your deployment script updates the codebase for the target site and then this command performs the following:

    drush updatedb --no-cache-clear\ndrush cache:rebuild\ndrush config:import\ndrush cache:rebuild\ndrush deploy:hook\n
    "},{"location":"deploycommand/#authoring-update-functions","title":"Authoring update functions","text":"

    Below are the 3 types of update functions run by this command, in order. Choose the most appropriate for your need.

    Function Drupal API Purpose HOOK_update_n() Not allowed Low level changes. HOOK_post_update_NAME() Allowed Runs before config is imported. HOOK_deploy_NAME() Allowed Runs after config is imported."},{"location":"deploycommand/#configuration","title":"Configuration","text":"

    If you need to customize this command, you should use Drush configuration for the subcommands listed above (e.g. updatedb, config:import, etc.).

    "},{"location":"generators/","title":"Overview","text":"

    Tip

    Drush 11 and prior required generators to define a drush.services.yml file. This is no longer used with Drush 12+ generators. See create() method for injecting dependencies.

    Generators jump start your coding by building all the boring boilerplate code for you. After running the generate command, you have a guide for where to insert your custom logic.

    Drush's generators reuse classes provided by the excellent Drupal Code Generator project. See its Commands directory for inspiration.

    "},{"location":"generators/#writing-custom-generators","title":"Writing Custom Generators","text":"

    Drupal modules may supply their own Generators, just like they can supply Commands.

    See Woot module, which Drush uses for testing. Specifically,

    1. Write a class similar to ExampleGenerator. Implement your custom logic in the generate() method. Typically this class is placed under the src/Drush/Generators directory.
    2. Add a .twig file to the same directory. This template specifies what gets output from the generator.
    "},{"location":"generators/#auto-discovered-generators-psr4","title":"Auto-discovered Generators (PSR4)","text":"

    Generators that don't ship inside Drupal modules are called global generators. For example see CustomDrushGenerator. In general, it is better to use modules to carry your generators. If you still prefer using a global generator, please note:

    1. The generator class should be PSR4 auto-loadable.
    2. The generator class namespace, relative to base namespace, should be Drush\\Generators. For instance, if a Drush generator provider third party library maps this PSR4 autoload entry:
      \"autoload\": {\n\"psr-4\": {\n\"My\\\\Custom\\\\Library\\\\\": \"src\"\n}\n}\n
      then the Drush global generator class namespace should be My\\Custom\\Library\\Drush\\Generators and the class file should be located under the src/Drush/Generators directory.
    3. The filename must have a name like FooGenerator.php. The prefix Foo can be whatever string you want. The file must end in Generator.php.
    "},{"location":"generators/#site-wide-generators","title":"Site-wide Generators","text":"

    Sitewide generators (as opposed to auto-discovered PSR4) have a namespace that starts with \\Drush\\Generators, the directory above Generators must be one of: 1. A Folder listed in the --include option. include may be provided via config or via CLI. 1. ../drush, /drush or /sites/all/drush. These paths are relative to Drupal root.

    "},{"location":"hooks/","title":"Hooks","text":""},{"location":"hooks/#core-hooks","title":"Core Hooks","text":"

    All commandfiles may implement methods that are called by Drush at various times in the request cycle. To implement one, add a #[CLI\\Hook(type: HookManager::ARGUMENT_VALIDATOR, target: 'pm:install')] (for example) to the top of your method.

    "},{"location":"hooks/#custom-hooks","title":"Custom Hooks","text":"

    Drush commands can define custom events that other command files can hook. You can find examples in CacheCommands and SanitizeCommands

    First, the command must implement CustomEventAwareInterface and use CustomEventAwareTrait, as described in the dependency injection documentation.

    Then, the command may ask the provided hook manager to return a list of handlers with a certain attribute. In the example below, the my-event label is used:

        /**\n     * This command uses a custom event 'my-event' to collect data.  Note that\n     * the event handlers will not be found unless the hook manager is\n     * injected into this command handler object via `setHookManager()`\n     * (defined in CustomEventAwareTrait).\n     */\n    #[CLI\\Command(name: 'example:command')]  \n    public function exampleCommand()\n    {\n        $myEventHandlers = $this->getCustomEventHandlers('my-event');\n        $result = [];\n        foreach ($myEventHandlers as $handler) {\n            $result[] = $handler();\n        }\n        sort($result);\n        return implode(',', $result);\n    }\n

    Other commandfiles may provide implementations via a PHP8 Attribute or an Annotation.

    PHP8 AttributesAnnotations
    /**\n * #[CLI\\Hook(type: HookManager::ON_EVENT, target: 'my-event')]\n */\npublic function hookOne()\n{\n    return 'one';\n}\n
    /**\n * @hook on-event my-event\n */\npublic function hookOne()\n{\n    return 'one';\n}\n
    "},{"location":"install/","title":"Install","text":"

    Tip

    Drush only supports one install method. It requires that your Drupal site be built with Composer and Drush be listed as a dependency.

    See the Drush 8 or Drush 9 docs for installing prior versions of Drush.

    1. Composer. It is required that Drupal sites be built using Composer, with Drush listed as a dependency. See recommended-project (Drush must be added). If your Composer project doesn't yet depend on Drush, run composer require drush/drush to add it.
    2. Execution. Change your working directory to your project root, and call Drush via vendor/bin/drush. To make this easier, append ./vendor/bin to the end of your $PATH; this allows you to call Drush via drush once your working directory is set. If you only have only one Drupal codebase on your system, you may put /path/to/vendor/bin/drush in your $PATH; if you do this, then it is not necessary to set your working directory before calling Drush.
    3. Completion. Optional. Append to .bashrc or equivalent for ZSH or Fish shell. Run drush completion --help for more details.
    4. Multiple Codebases. Optional. If using the bash shell, consider installing the fd project, a small set of scripts that make it easier to switch between different project directories quickly, with type completion.

    Note

    "},{"location":"install/#drupal-compatibility","title":"Drupal Compatibility","text":"Drush Version PHP Version End Of Life Drupal versions 7 8 9 10 Drush 12 8.1+ TBD \u2705 Drush 11 7.4+ Nov 2023 \u2705 \u2713 Drush 10 7.1+ (not 8) Jan 2022 \u2713 \u2713 Drush 9 5.6+ May 2020 \u2713 Drush 8 5.4.5+ Jan 2025 \u2705 \u2713\ufe0f Drush 7 5.3.0+ Jul 2017 \u2713 Drush 6 5.3.0+ Dec 2015 \u2713 Drush 5 5.2.0+ May 2015 \u2713 Legend \u2705 Supported and recommended \u2713 Compatible but no longer supported"},{"location":"io/","title":"Input / Output","text":""},{"location":"io/#the-io-system","title":"The io() system","text":""},{"location":"migrate/","title":"Defining and running migrations","text":"

    10.4+

    The Migrate API delivers services for migrating data from a source system to Drupal. This API is provided by the core migrate module. In order to migrate data to Drupal, you'll need to create migrations for each type of destination data.

    These commands are an alternative to https://www.drupal.org/project/migrate_tools. Don't use that module if you use these commands.

    "},{"location":"migrate/#defining-migrations","title":"Defining migrations","text":"

    Learn how to create migrations from the Drupal official documentation:

    "},{"location":"migrate/#running-migrations","title":"Running migrations","text":"

    Drush provides a set of commands that allows to run migration operations such as importing, checking the current status of migrations, rolling-back migrations, stopping an ongoing migration, etc. Such commands are available only when the migrate module is enabled. In order the get a full list of migrate commands, type:

    drush --filter=migrate\n

    To get help on each command run drush with the command name as parameter and the --help option. For example next command will show details about the migrate:import Drush command:

    drush migrate:import --help\n
    "},{"location":"output-formats-filters/","title":"Output Formats, Fields and Filters","text":"

    Drush utilizes a powerful formatting and filtering system that provides the user with a lot of control over how output from various commands is rendered.

    "},{"location":"output-formats-filters/#output-formats","title":"Output Formats","text":"

    The --format option may be used to select the data format used to print the output of a command. Most commands that produce informative output about some object or system can transform their data into different formats. For example, the version command may be printed in a human-readable table (the default), or in a json array:

    $ drush version\n Drush version : 10.3.1\n$ drush version --format=json\n{\n\"drush-version\": \"10.3.1\"\n}\n
    The available output formats are shown in the help for each command:
    $ drush help version\nShow drush version.\n\nOptions:\n --format=<json>    Select output format. Available: json, string, var_export, yaml. Default is key-value.\n

    "},{"location":"output-formats-filters/#output-fields","title":"Output Fields","text":"

    If you wish to limit the number of columns produced by a command, use the --fields option. List the field names in the order they should be displayed:

    $ drush views:list --fields=machine-name,status\n+-------------------+----------+\n| Machine name      | Status   |\n+-------------------+----------+\n| block_content     | Enabled  |\n| comment           | Enabled  |\n| comments_recent   | Enabled  |\n| content           | Enabled  |\n| content_recent    | Enabled  |\n| files             | Enabled  |\n| frontpage         | Enabled  |\n| taxonomy_term     | Enabled  |\n| user_admin_people | Enabled  |\n| watchdog          | Enabled  |\n| who_s_new         | Enabled  |\n| who_s_online      | Enabled  |\n| archive           | Disabled |\n| glossary          | Disabled |\n+-------------------+----------+\n
    The available field names are shown in the help text:
    $ drush help views:list\nGet a list of all views in the system.\n\nOptions:\n  --fields=FIELDS   Available fields: Machine name (machine-name),     Name (label), Description (description), Status    (status), Tag (tag) [default:                      \"machine-name,label,description,status\"]           
    Fields may be named either using their human-readable name, or via their machine name.

    Note also that some commands do not display all of their available data columns by default. To show all available fields, use --fields=*

    There is also a singular form --field available. If this form is used, it will also force the output format to string.

    $ drush views:list --field=machine-name \nblock_content\ncomment\ncomments_recent\ncontent\ncontent_recent\nfiles\nfrontpage\ntaxonomy_term\nuser_admin_people\nwatchdog\nwho_s_new\nwho_s_online\narchive\nglossary\n

    "},{"location":"output-formats-filters/#output-filters","title":"Output Filters","text":"

    A number of Drush commands that output tabular data support a --filter option that allows rows from the output to be selected with simple logic expressions.

    In its simplest form, the --filter option takes a string that indicates the value to filter by in the command's default filter field. For example, the role:list command specifies perms as its default filter; the output of the role:list command may be limited to only those roles that have a specified permission:

    $ drush role:list --filter='post comments'\nauthenticated:\n  label: 'Authenticated user'\nperms:\n    - 'access comments'\n- 'access content'\n- 'access shortcuts'\n- 'access site-wide contact form'\n- 'access user contact forms'\n- 'post comments'\n- 'search content'\n- 'skip comment approval'\n- 'use text format basic_html'\n
    Note that not all commands have a default filter field.

    Other fields in the output may be searched by using a simple expression in the --filter term. For example, to list only the enabled extensions with the pm:list command, you could run:

    $ drush pm:list --filter='status=enabled'\n
    To search for fields that contain a string using the operator *=, or match a regular expression with the ~= operator. For example, to find all views whose machine name contains the word content:
    drush views:list --filter='machine-name*=content'\n
    To use a regular expression to find any core requirement notice whose title contains either php or gd
    drush core:requirements --filter='title~=#(php|gd)#i'\n
    Finally, filter expressions may also use logical-and (&&) or logical-or (||) operations to separate multiple terms. Parenthesis are not supported. For example, to search both the title and severity fields in the core:requirements command:
    drush core:requirements --filter='title~=#(php|gd)#i&&severity=warning'\n

    The = and *= operators always use case-insensitive comparisons. The ~= operator is case-sensitive, unless the i PCRE modifier is used, as shown in the previous example.

    "},{"location":"output-formats-filters/#comparison-of-filters-with-grep","title":"Comparison of Filters with Grep","text":"

    Using the --filter feature is similar to using grep. The main difference is that the filter feature does a semantic search, which is to say that it explicitly compares against the data in specific fields. In comparison, the grep command does a line-based search.

    Show only results where the severity is warning:

    drush core:requirements --filter='severity=warning'

    Show only lines that contain the string warning (either in the severity field, or somewhere else on the line):

    drush core:requirements | grep -i warning

    The table below compares and contrasts the two ways of searching.

    Feature --filter grep Regular expressions Yes, with ~= Yes Word-wrapped field data Searched correctly Might cause false negative Search just one field Yes Might get false positives Search multiple fields Yes, with ||/&& Yes (line-based searching) Searching hides header No Yes (unless it matches)"},{"location":"repl/","title":"REPL (a custom shell for Drupal)","text":"

    The php:cli command is interactive PHP REPL with your bootstrapped site (remote or local). It\u2019s a Drupal code playground. You can do quick code experimentation, grab some data, or run Drush commands. This can also help with debugging certain issues. See this blog post for an introduction. Run help for a list of commands.

    Any global PsySH configuration is loaded by Drush. If you prefer a config file that is specific to the project (and can be checked in with other source code), set the environment variable PSYSH_CONFIG=</path/to/config-file>. This file then takes precedence over any global file.

    Entity classes are available without their namespace. For example, Node::load() works instead of Drupal\\Node\\entity\\Noad::load().

    "},{"location":"site-alias-manager/","title":"Site Alias Manager","text":"

    The Site Alias Manager (SAM) service is used to retrieve information about one or all of the site aliases for the current installation.

    "},{"location":"site-aliases/","title":"Site aliases","text":""},{"location":"site-aliases/#basic-usage","title":"Basic usage","text":"

    In its most basic form, the Drush site alias feature provides a way for teams to share short names that refer to the live and staging sites (usually remote) for a given Drupal site.

    Add an alias file called $PROJECT/drush/sites/self.site.yml, where $PROJECT is the project root (location of composer.json file). The site alias file should be named self.site.yml because this name is special, and is used to define the different environments (usually remote) of the current Drupal site.

    The contents of the alias file should look something like the example below:

    # File: self.site.yml\nlive:\n  host: server.domain.com\n  user: www-admin\n  root: /other/path/to/live/drupal\n  uri: http://example.com\nstage:\n  host: server.domain.com\n  user: www-admin\n  root: /other/path/to/stage/drupal\n  uri: http://stage.example.com\n

    The top-level element names (live and stage in the example above) are used to identify the different environments available for this site. These may be used on the command line to select a different target environment to operate on by prepending an @ character, e.g. @live or @stage.

    Following these steps, a cache:rebuild on the live environment would be:

      $ drush @live cache:rebuild\n

    All of the available aliases for a site's environments may be listed via:

      $ drush site:alias @self\n

    The elements of a site alias are:

    Drush typically uses ssh to run commands on remote systems; all team members should install ssh keys on the target servers (e.g. via ssh-add).

    "},{"location":"site-aliases/#advanced-usage","title":"Advanced usage","text":"

    It is also possible to create site alias files that reference other sites on the same local system. Site alias files for other local sites are usually stored in the directory ~/.drush/sites; however, Drush does not search this location for alias files by default. To use this location, you must add the path in your Drush configuration file. For example, to re-add both of the default user alias path from Drush 8, put the following in your ~/.drush/drush.yml configuration file:

    drush:\n  paths:\n    alias-path:\n      - '${env.HOME}/.drush/sites'\n      - /etc/drush/sites\n

    A canonical alias named example that points to a local Drupal site named at http://example.com like this:

    # File: example.site.yml\ndev:\n  root: /path/to/drupal\n  uri: http://example.com\n

    Note that the first part of the filename (in this case example defines the name of the site alias, and the top-level key dev defines the name of the environment.

    With these definitions in place, it is possible to run commands targeting the dev environment of the target site via:

      $ drush @example.dev status\n
    This command is equivalent to the longer form:
      $ drush --root=/path/to/drupal --uri=http://example.com status\n
    See Additional Site Alias Options for more information.

    "},{"location":"site-aliases/#altering-aliases","title":"Altering aliases:","text":"

    See examples/Commands/SiteAliasAlterCommands.php) for an example.

    "},{"location":"site-aliases/#site-specifications","title":"Site specifications:","text":"

    When a site alias name is provided on the command line, a site specification may be used instead. A site specification is a site alias that is not saved on the filesystem but instead is provided directly e.g. drush user@server/path/to/drupal#uri core:status. See example site specifications.

    "},{"location":"site-aliases/#environment-variables","title":"Environment variables","text":"

    Site aliases may reference environment variables, just like any Drush config file. For example, ${env.PROJECT_SSH_USER} will be replaced by the value of the PROJECT_SSH_USER environment value.

    SSH site aliases may set environment variables via the env-vars key. See below.

    "},{"location":"site-aliases/#additional-site-alias-options","title":"Additional Site Alias Options","text":"

    Aliases are commonly used to define short names for local or remote Drupal installations; however, an alias is really nothing more than a collection of options.

    Complex example:

    # File: remote.site.yml\nlive:\n  host: server.domain.com\n  user: www-admin\n  root: /other/path/to/drupal\n  uri: http://example.com\n  ssh:\n    options: '-p 100'\n  paths:\n    drush-script: '/path/to/drush'\n  env-vars:\n    PATH: /bin:/usr/bin:/home/www-admin/.composer/vendor/bin\n    DRUPAL_ENV: live\n  command:\n    site:\n      install:\n        options:\n          admin-password: 'secret-secret'\n
    "},{"location":"site-aliases/#site-alias-files-for-service-providers","title":"Site Alias Files for Service Providers","text":"

    There are a number of service providers that manage Drupal sites as a service. Drush allows service providers to create collections of site alias files to reference all of the sites available to a single user. In order to do this, a new location must be defined in your Drush configuration file:

    drush:\n  paths:\n    alias-path:\n      - '${env.HOME}/.drush/sites/provider-name'\n

    Site aliases stored in this directory may then be referenced by its full alias name, including its location, e.g.:

      $ drush @provider-name.example.dev\n
    Such alias files may still be referenced by their shorter name, e.g. @example.dev. Note that it is necessary to individually list every location where site alias files may be stored; Drush never does recursive (deep) directory searches for alias files.

    The site:alias command may also be used to list all of the sites and environments in a given location, e.g.:

      $ drush site:alias @provider-name\n
    Add the option --format=list to show only the names of each site and environment without also showing the values in each alias record.

    "},{"location":"site-aliases/#wildcard-aliases-for-service-providers","title":"Wildcard Aliases for Service Providers","text":"

    Some service providers that manage Drupal sites allow customers to create multiple \"environments\" for a site. It is common for these providers to also have a feature to automatically create Drush aliases for all of a user's sites. Rather than write one record for every environment in that site, it is also possible to write a single wildcard alias that represents all possible environments. This is possible if the contents of each environment alias are identical save for the name of the environment in one or more values. The variable ${env-name} will be substituted with the environment name wherever it appears.

    Example wildcard record:

    # File: remote-example.site.yml\n'*':\n  host: ${env-name}.server.domain.com\n  user: www-admin\n  root: /path/to/${env-name}\n  uri: http://${env-name}.remote-example.com\n

    With a wildcard record, any environment name may be used, and will always match. This is not desirable in instances where the specified environment does not exist (e.g. if the user made a typo). An alias alter hook in a policy file may be used to catch these mistakes and report an error. See SiteAliasAlterCommands for an example on how to do this.

    "},{"location":"site-aliases/#docker-compose-and-other-transports","title":"Docker Compose and other transports","text":"

    The example below shows drush calling into a Docker hosted site. See the https://github.com/consolidation/site-alias and https://github.com/consolidation/site-process projects for more developer information about transports.

    An example appears below. Edit to suit:

    # File: mysite.site.yml\nlocal:\nThis environment is an example of the DockerCompose transport.\n  docker:\n    service: drupal\n    exec:\n      options: --user USER\nstage:\n  uri: http://stage.example.com\n  root: /path/to/remote/drupal/root\n  host: mystagingserver.myisp.com\n  user: publisher\n  os: Linux\n  paths:\n   - files: sites/mydrupalsite.com/files\n   - custom: /my/custom/path\n  command:\n    sql:\n      sync:\n        options:\n          no-dump: true\ndev:\n  root: /path/to/docroot\n  uri: https://dev.example.com\n
    "},{"location":"site-aliases/#example-of-rsync-with-exclude-paths","title":"Example of rsync with exclude-paths","text":"

    Note that most options typically passed to rsync via drush rsync are \"passthrough options\", which is to say they appear after the -- separator on the command line. Passthrough options are actually arguments, and it is not possible to set default arguments in an alias record. The drush rsync command does support two options, --mode and --exclude-paths, which are interpreted directly by Drush. Default values for these options may be specified in an alias record, as shown below.

    dev:\n  root: /path/to/docroot\n  uri: https://dev.example.com\n  command:\n    core:\n      rsync:\n        options:\n          mode: rlptz\n          exclude-paths: 'css:imagecache:ctools:js:tmp:php:styles'\n
    "},{"location":"usage/","title":"Usage","text":"

    Drush can be run in your shell by typing drush from within your project root directory or anywhere within Drupal.

    $ drush [options] <command> [argument1] [argument2]\n

    Use the help command to get a list of available options and commands:

    $ drush help pm:list\n

    For even more documentation, use the topic command:

    $ drush topic\n
    "},{"location":"usage/#using-the-uri-option-and-root-options","title":"Using the --uri option and --root options.","text":"

    For multi-site installations, use a site alias or the --uri option to target a particular site.

    $ drush --uri=http://example.com pm:install\n

    If you are outside the Composer project and not using a site alias, you need to specify --root and --uri for Drush to locate and bootstrap the right Drupal site.

    "},{"location":"usage/#site-aliases","title":"Site Aliases","text":"

    Drush lets you run commands on a remote server. Once defined, aliases can be referenced with the @ nomenclature, i.e.

    # Run pending updates on staging site.\n$ drush @staging updatedb\n# Synchronize staging files to production\n$ drush rsync @staging:%files/ @live:%files\n# Synchronize database from production to local, excluding the cache table\n$ drush sql:sync --structure-tables-key=custom @live @self\n

    See Site aliases for more information.

    "},{"location":"using-drush-configuration/","title":"Drush Configuration","text":"

    Drush configuration is useful to cut down on typing out lengthy and repetitive command line options, and to avoid mistakes.

    "},{"location":"using-drush-configuration/#directories-and-discovery","title":"Directories and Discovery","text":"

    drush.yml files are discovered as below, in order of precedence:

    1. Drupal site folder (e.g. sites/{example.com}/drush.yml).
    2. sites/all/drush, WEBROOT/drush, or PROJECTROOT/drush.
    3. In any location, as specified by the --config option.
    4. User's .drush folder (i.e. ~/.drush/drush.yml).
    5. System-wide configuration folder (e.g. /etc/drush/drush.yml or C:\\ProgramData\\Drush\\drush.yml).

    If a configuration file is found in any of the above locations, it will be loaded and merged with other configuration files in the search list. Run drush status --fields=drush-conf to see all discovered config files.

    "},{"location":"using-drush-configuration/#environment-variables","title":"Environment variables","text":"

    Your Drush config file may reference environment variables using a syntax like ${env.HOME}. For example see the drush.paths examples below.

    An alternative way to populate Drush configuration is to define environment variables that correspond to config keys. For example, to populate the options.uri config item, create an environment variable DRUSH_OPTIONS_URI=http://example.com. As you can see, variable names should be uppercased, prefixed with DRUSH_, and periods replaced with dashes.

    "},{"location":"using-drush-configuration/#config-examples","title":"Config examples","text":""},{"location":"using-drush-configuration/#specify-config-files-to-load","title":"Specify config files to load","text":"
    drush:\n  paths:\n    config:\n      # Load any personal config files. Is silently skipped if not found. Filename must be drush.yml\n      - ${env.HOME}/.drush/config/drush.yml\n
    "},{"location":"using-drush-configuration/#specify-folders-to-search-for-drush-command-files","title":"Specify folders to search for Drush command files.","text":"

    These locations are always merged with include paths defined on the command line or in other configuration files. On the command line, paths may be separated by a colon : on Unix-based systems or a semi-colon ; on Windows, or multiple --include options may be provided. Drush 8 and earlier did a deep search in ~/.drush and /usr/share/drush/commands when loading command files, so we mimic that here as an example.

    drush:\n  include:\n    - '${env.HOME}/.drush/commands'\n    - /usr/share/drush/commands\n
    "},{"location":"using-drush-configuration/#specify-the-folders-to-search-for-drush-alias-files-siteyml","title":"Specify the folders to search for Drush alias files (*.site.yml).","text":"

    These locations are always merged with alias paths defined on the command line or in other configuration files. On the command line, paths may be separated by a colon : on Unix-based systems or a semi-colon ; on Windows, or multiple --alias-path options may be provided. Note that Drush 8 and earlier did a deep search in ~/.drush and /etc/drush when loading alias files.

    drush:\n  paths:\n    alias-path:\n      - '${env.HOME}/.drush/sites'\n      - /etc/drush/sites\n
    - View all loaded site aliases: drush site:alias

    "},{"location":"using-drush-configuration/#backup-directory","title":"Backup directory","text":"

    Specify a folder where Drush should store backup files, including temporary sql dump files created during sql:sync. If unspecified, defaults to $HOME/drush-backups.

    drush:\n  paths:\n    backup-dir: /tmp/drush-backups\n

    "},{"location":"using-drush-configuration/#global-options","title":"Global options","text":"
    options:\n  # Specify the base_url that should be used when generating links.\n  uri: 'http://example.com/subdir'\n\n  # Specify your Drupal core base directory (useful if you use symlinks).\n  root: '/home/USER/workspace/drupal'\n\n  # Enable verbose mode.\n  verbose: true\n
    "},{"location":"using-drush-configuration/#command-specific-options","title":"Command-specific options","text":"
    command:\n  sql:\n    cli:\n      options:\n        # Enable auto-complete in MySQL.\n        extra: \"--auto-rehash\"\n    dump:\n      options:\n        # Omit cache and similar tables (including during a sql:sync).\n        structure-tables-key: common\n  php:\n    script:\n      options:\n        # Additional folders to search for scripts.\n        script-path: 'sites/all/scripts:profiles/myprofile/scripts'\n  core:\n    rsync:\n      options:\n        # Ensure all rsync commands use verbose output.\n        verbose: true\n\n  site:\n    install:\n      options:\n        # Set a predetermined username and password when using site:install.\n        account-name: 'alice'\n        account-pass: 'secret'\n
    "},{"location":"using-drush-configuration/#non-options","title":"Non-options","text":"
    sql:\n  # An explicit list of tables which should be included in sql-dump and sql-sync.\n  tables:\n    common:\n      - user\n      - permissions\n      - role_permissions\n      - role\n  # List of tables whose *data* is skipped by the 'sql-dump' and 'sql-sync'\n  # commands when the \"--structure-tables-key=common\" option is provided.\n  # You may add specific tables to the existing array or add a new element.\n  structure-tables:\n    common:\n      - cache\n      - 'cache_*'\n      - history\n      - 'search_*'\n      - 'sessions'\n      - 'watchdog'\n  # List of tables to be omitted entirely from SQL dumps made by the 'sql-dump'\n  # and 'sql-sync' commands when the \"--skip-tables-key=common\" option is\n  # provided on the command line.  This is useful if your database contains\n  # non-Drupal tables used by some other application or during a migration for\n  # example.  You may add new tables to the existing array or add a new element.\n  skip-tables:\n    common:\n      - 'migration_*'\n\nssh:\n  # Specify options to pass to ssh.  The default is to prohibit\n  # password authentication, and is included here, so you may add additional\n  # parameters without losing the default configuration.\n  options: '-o PasswordAuthentication=no'\n  # This string is valid for Bash shell. Override in case you need something different. See https://github.com/drush-ops/drush/issues/3816.\n  pipefail: 'set -o pipefail; '\n\nnotify:\n  # Notify when command takes more than 30 seconds.\n  duration: 30\n  # Specify a command to run. Defaults to Notification Center (OSX) or libnotify (Linux)\n  cmd: /path/to/program\n  # See https://github.com/drush-ops/drush/blob/12.x/src/Commands/core/NotifyCommands.php for more settings.\n\nxh:\n  # Start profiling via xhprof/tideways and show a link to the run report.\n  link: http://xhprof.local\n  # See https://github.com/drush-ops/drush/blob/12.x/src/Commands/core/XhprofCommands.php for more settings.\n  profile-builtins: true\n  profile-cpu: false\n  profile-memory: false\n
    "},{"location":"using-drush-configuration/#misc","title":"Misc","text":""},{"location":"commands/all/","title":"All commands","text":"

    Tip

    Press the / key to Search for a command. Or use your browser's Find in Page feature.

    "},{"location":"commands/archive_dump/","title":"archive:dump","text":"

    Backup your code, files, and database into a single file.

    The following paths would be excluded from a code archive:

    The following directories would be excluded from a file archive:

    "},{"location":"commands/archive_dump/#examples","title":"Examples","text":""},{"location":"commands/archive_dump/#options","title":"Options","text":""},{"location":"commands/archive_dump/#global-options","title":"Global Options","text":""},{"location":"commands/archive_dump/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/archive_restore/","title":"archive:restore","text":"

    Restore (import) your code, files, and database.

    "},{"location":"commands/archive_restore/#examples","title":"Examples","text":""},{"location":"commands/archive_restore/#arguments","title":"Arguments","text":""},{"location":"commands/archive_restore/#options","title":"Options","text":""},{"location":"commands/archive_restore/#global-options","title":"Global Options","text":""},{"location":"commands/archive_restore/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/browse/","title":"browse","text":"

    Display a link to a given path or open link in a browser.

    "},{"location":"commands/browse/#examples","title":"Examples","text":""},{"location":"commands/browse/#arguments","title":"Arguments","text":""},{"location":"commands/browse/#options","title":"Options","text":""},{"location":"commands/browse/#global-options","title":"Global Options","text":"

    Legend

    "},{"location":"commands/cache_clear/","title":"cache:clear","text":"

    Clear a specific cache, or all Drupal caches.

    "},{"location":"commands/cache_clear/#examples","title":"Examples","text":""},{"location":"commands/cache_clear/#arguments","title":"Arguments","text":""},{"location":"commands/cache_clear/#options","title":"Options","text":""},{"location":"commands/cache_clear/#global-options","title":"Global Options","text":""},{"location":"commands/cache_clear/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/cache_get/","title":"cache:get","text":"

    Fetch a cached object and display it.

    "},{"location":"commands/cache_get/#examples","title":"Examples","text":""},{"location":"commands/cache_get/#arguments","title":"Arguments","text":""},{"location":"commands/cache_get/#options","title":"Options","text":""},{"location":"commands/cache_get/#global-options","title":"Global Options","text":""},{"location":"commands/cache_get/#topics","title":"Topics","text":""},{"location":"commands/cache_get/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/cache_rebuild/","title":"cache:rebuild","text":"

    Rebuild all caches.

    This is a copy of core/rebuild.php.

    "},{"location":"commands/cache_rebuild/#options","title":"Options","text":""},{"location":"commands/cache_rebuild/#global-options","title":"Global Options","text":""},{"location":"commands/cache_rebuild/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/cache_set/","title":"cache:set","text":"

    Cache an object expressed in JSON or var_export() format.

    "},{"location":"commands/cache_set/#arguments","title":"Arguments","text":""},{"location":"commands/cache_set/#options","title":"Options","text":""},{"location":"commands/cache_set/#global-options","title":"Global Options","text":""},{"location":"commands/cache_set/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/cache_tags/","title":"cache:tags","text":"

    Invalidate by cache tags.

    "},{"location":"commands/cache_tags/#examples","title":"Examples","text":""},{"location":"commands/cache_tags/#arguments","title":"Arguments","text":""},{"location":"commands/cache_tags/#global-options","title":"Global Options","text":""},{"location":"commands/cache_tags/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/completion/","title":"completion","text":"

    Dump the shell completion script

    The *%command.name% command dumps the shell completion script required to use shell autocompletion (currently, bash, fish, zsh completion are supported).

    "},{"location":"commands/completion/#static-installation","title":"Static installation

    Dump the script to a global completion file and restart your shell:

    *%command.full_name%  | sudo tee /etc/bash_completion.d/drush\n

    Or dump the script to a local file and source it:

    *%command.full_name%  > completion.sh\n\n<comment># source the file whenever you use the project\n*source completion.sh\n\n<comment># or add this line at the end of your \"~/.bashrc\" file:\n*source /path/to/completion.sh\n
    ","text":""},{"location":"commands/completion/#dynamic-installation","title":"Dynamic installation

    Add this to the end of your shell configuration file (e.g. *\"~/.bashrc\"):

    *eval \"$(/home/runner/work/drush/drush/drush completion )\"\n
    ","text":""},{"location":"commands/completion/#arguments","title":"Arguments","text":""},{"location":"commands/completion/#options","title":"Options","text":""},{"location":"commands/completion/#global-options","title":"Global Options","text":"

    Legend

    "},{"location":"commands/config_delete/","title":"config:delete","text":"

    Delete a configuration key, or a whole object(s).

    "},{"location":"commands/config_delete/#examples","title":"Examples","text":""},{"location":"commands/config_delete/#arguments","title":"Arguments","text":""},{"location":"commands/config_delete/#global-options","title":"Global Options","text":""},{"location":"commands/config_delete/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/config_edit/","title":"config:edit","text":"

    Open a config file in a text editor. Edits are imported after closing editor.

    "},{"location":"commands/config_edit/#examples","title":"Examples","text":""},{"location":"commands/config_edit/#arguments","title":"Arguments","text":""},{"location":"commands/config_edit/#options","title":"Options","text":""},{"location":"commands/config_edit/#global-options","title":"Global Options","text":""},{"location":"commands/config_edit/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/config_export/","title":"config:export","text":"

    Export Drupal configuration to a directory.

    "},{"location":"commands/config_export/#examples","title":"Examples","text":""},{"location":"commands/config_export/#options","title":"Options","text":""},{"location":"commands/config_export/#global-options","title":"Global Options","text":""},{"location":"commands/config_export/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/config_get/","title":"config:get","text":"

    Display a config value, or a whole configuration object.

    "},{"location":"commands/config_get/#examples","title":"Examples","text":""},{"location":"commands/config_get/#arguments","title":"Arguments","text":""},{"location":"commands/config_get/#options","title":"Options","text":""},{"location":"commands/config_get/#global-options","title":"Global Options","text":""},{"location":"commands/config_get/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/config_import/","title":"config:import","text":"

    Import config from the config directory.

    "},{"location":"commands/config_import/#examples","title":"Examples","text":""},{"location":"commands/config_import/#options","title":"Options","text":""},{"location":"commands/config_import/#global-options","title":"Global Options","text":""},{"location":"commands/config_import/#topics","title":"Topics","text":""},{"location":"commands/config_import/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/config_pull/","title":"config:pull","text":"

    Export and transfer config from one environment to another.

    "},{"location":"commands/config_pull/#examples","title":"Examples","text":""},{"location":"commands/config_pull/#arguments","title":"Arguments","text":""},{"location":"commands/config_pull/#options","title":"Options","text":""},{"location":"commands/config_pull/#global-options","title":"Global Options","text":""},{"location":"commands/config_pull/#topics","title":"Topics","text":""},{"location":"commands/config_pull/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/config_set/","title":"config:set","text":"

    Save a config value directly. Does not perform a config import.

    "},{"location":"commands/config_set/#examples","title":"Examples","text":""},{"location":"commands/config_set/#arguments","title":"Arguments","text":""},{"location":"commands/config_set/#options","title":"Options","text":""},{"location":"commands/config_set/#global-options","title":"Global Options","text":""},{"location":"commands/config_set/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/config_status/","title":"config:status","text":"

    Display status of configuration (differences between the filesystem configuration and database configuration).

    "},{"location":"commands/config_status/#examples","title":"Examples","text":""},{"location":"commands/config_status/#options","title":"Options","text":""},{"location":"commands/config_status/#global-options","title":"Global Options","text":""},{"location":"commands/config_status/#topics","title":"Topics","text":""},{"location":"commands/config_status/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/core_cron/","title":"core:cron","text":"

    Run all cron hooks in all active modules for specified site.

    "},{"location":"commands/core_cron/#examples","title":"Examples","text":""},{"location":"commands/core_cron/#global-options","title":"Global Options","text":""},{"location":"commands/core_cron/#topics","title":"Topics","text":""},{"location":"commands/core_cron/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/core_edit/","title":"core:edit","text":"

    Edit drush.yml, site alias, and Drupal settings.php files.

    "},{"location":"commands/core_edit/#examples","title":"Examples","text":""},{"location":"commands/core_edit/#arguments","title":"Arguments","text":""},{"location":"commands/core_edit/#options","title":"Options","text":""},{"location":"commands/core_edit/#global-options","title":"Global Options","text":""},{"location":"commands/core_edit/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/core_requirements/","title":"core:requirements","text":"

    Information about things that may be wrong in your Drupal installation.

    "},{"location":"commands/core_requirements/#examples","title":"Examples","text":""},{"location":"commands/core_requirements/#options","title":"Options","text":""},{"location":"commands/core_requirements/#global-options","title":"Global Options","text":""},{"location":"commands/core_requirements/#topics","title":"Topics","text":""},{"location":"commands/core_requirements/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/core_route/","title":"core:route","text":"

    10.5+

    View information about all routes or one route.

    "},{"location":"commands/core_route/#examples","title":"Examples","text":""},{"location":"commands/core_route/#options","title":"Options","text":""},{"location":"commands/core_route/#global-options","title":"Global Options","text":""},{"location":"commands/core_route/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/core_rsync/","title":"core:rsync","text":"

    Rsync Drupal code or files to/from another server using ssh.

    "},{"location":"commands/core_rsync/#examples","title":"Examples","text":""},{"location":"commands/core_rsync/#arguments","title":"Arguments","text":""},{"location":"commands/core_rsync/#options","title":"Options","text":""},{"location":"commands/core_rsync/#global-options","title":"Global Options","text":""},{"location":"commands/core_rsync/#topics","title":"Topics","text":""},{"location":"commands/core_rsync/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/core_status/","title":"core:status","text":"

    An overview of the environment - Drush and Drupal.

    "},{"location":"commands/core_status/#examples","title":"Examples","text":""},{"location":"commands/core_status/#options","title":"Options","text":""},{"location":"commands/core_status/#global-options","title":"Global Options","text":""},{"location":"commands/core_status/#topics","title":"Topics","text":""},{"location":"commands/core_status/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/core_topic/","title":"core:topic","text":"

    Read detailed documentation on a given topic.

    "},{"location":"commands/core_topic/#examples","title":"Examples","text":""},{"location":"commands/core_topic/#arguments","title":"Arguments","text":""},{"location":"commands/core_topic/#global-options","title":"Global Options","text":""},{"location":"commands/core_topic/#topics","title":"Topics","text":""},{"location":"commands/core_topic/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/deploy/","title":"deploy","text":"

    10.3+

    Run several commands after performing a code deployment.

    "},{"location":"commands/deploy/#examples","title":"Examples","text":""},{"location":"commands/deploy/#global-options","title":"Global Options","text":""},{"location":"commands/deploy/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/deploy_hook-status/","title":"deploy:hook-status","text":"

    Prints information about pending deploy update hooks.

    "},{"location":"commands/deploy_hook-status/#examples","title":"Examples","text":""},{"location":"commands/deploy_hook-status/#options","title":"Options","text":""},{"location":"commands/deploy_hook-status/#global-options","title":"Global Options","text":""},{"location":"commands/deploy_hook-status/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/deploy_hook/","title":"deploy:hook","text":"

    10.3+

    Run pending deploy update hooks.

    "},{"location":"commands/deploy_hook/#examples","title":"Examples","text":""},{"location":"commands/deploy_hook/#global-options","title":"Global Options","text":""},{"location":"commands/deploy_hook/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/deploy_mark-complete/","title":"deploy:mark-complete","text":"

    10.6.1+

    Mark all deploy hooks as having run.

    "},{"location":"commands/deploy_mark-complete/#examples","title":"Examples","text":""},{"location":"commands/deploy_mark-complete/#global-options","title":"Global Options","text":""},{"location":"commands/deploy_mark-complete/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/drupal_directory/","title":"drupal:directory","text":"

    Return the filesystem path for modules/themes and other key folders.

    "},{"location":"commands/drupal_directory/#examples","title":"Examples","text":""},{"location":"commands/drupal_directory/#arguments","title":"Arguments","text":""},{"location":"commands/drupal_directory/#options","title":"Options","text":""},{"location":"commands/drupal_directory/#global-options","title":"Global Options","text":""},{"location":"commands/drupal_directory/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/entity_delete/","title":"entity:delete","text":"

    Delete content entities.

    To delete configuration entities, see config:delete command.

    "},{"location":"commands/entity_delete/#examples","title":"Examples","text":""},{"location":"commands/entity_delete/#arguments","title":"Arguments","text":""},{"location":"commands/entity_delete/#options","title":"Options","text":""},{"location":"commands/entity_delete/#global-options","title":"Global Options","text":""},{"location":"commands/entity_delete/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/entity_save/","title":"entity:save","text":"

    11.0+

    Load and save entities.

    "},{"location":"commands/entity_save/#examples","title":"Examples","text":""},{"location":"commands/entity_save/#arguments","title":"Arguments","text":""},{"location":"commands/entity_save/#options","title":"Options","text":""},{"location":"commands/entity_save/#global-options","title":"Global Options","text":""},{"location":"commands/entity_save/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/field_base-info/","title":"field:base-info","text":"

    11.0+

    List all base fields of an entity type

    "},{"location":"commands/field_base-info/#examples","title":"Examples","text":""},{"location":"commands/field_base-info/#arguments","title":"Arguments","text":""},{"location":"commands/field_base-info/#options","title":"Options","text":""},{"location":"commands/field_base-info/#global-options","title":"Global Options","text":""},{"location":"commands/field_base-info/#topics","title":"Topics","text":""},{"location":"commands/field_base-info/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/field_base-override-create/","title":"field:base-override-create","text":"

    11.0+

    Create a new base field override

    "},{"location":"commands/field_base-override-create/#examples","title":"Examples","text":""},{"location":"commands/field_base-override-create/#arguments","title":"Arguments","text":""},{"location":"commands/field_base-override-create/#options","title":"Options","text":""},{"location":"commands/field_base-override-create/#global-options","title":"Global Options","text":""},{"location":"commands/field_base-override-create/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/field_create/","title":"field:create","text":"

    11.0+

    Create a new field

    "},{"location":"commands/field_create/#examples","title":"Examples","text":""},{"location":"commands/field_create/#arguments","title":"Arguments","text":""},{"location":"commands/field_create/#options","title":"Options","text":""},{"location":"commands/field_create/#global-options","title":"Global Options","text":""},{"location":"commands/field_create/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/field_delete/","title":"field:delete","text":"

    11.0+

    Delete a field

    "},{"location":"commands/field_delete/#examples","title":"Examples","text":""},{"location":"commands/field_delete/#arguments","title":"Arguments","text":""},{"location":"commands/field_delete/#options","title":"Options","text":""},{"location":"commands/field_delete/#global-options","title":"Global Options","text":""},{"location":"commands/field_delete/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/field_formatters/","title":"field:formatters","text":"

    Lists field formatters.

    "},{"location":"commands/field_formatters/#examples","title":"Examples","text":""},{"location":"commands/field_formatters/#options","title":"Options","text":""},{"location":"commands/field_formatters/#global-options","title":"Global Options","text":""},{"location":"commands/field_formatters/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/field_info/","title":"field:info","text":"

    11.0+

    List all configurable fields of an entity bundle

    "},{"location":"commands/field_info/#examples","title":"Examples","text":""},{"location":"commands/field_info/#arguments","title":"Arguments","text":""},{"location":"commands/field_info/#options","title":"Options","text":""},{"location":"commands/field_info/#global-options","title":"Global Options","text":""},{"location":"commands/field_info/#topics","title":"Topics","text":""},{"location":"commands/field_info/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/field_types/","title":"field:types","text":"

    Lists field types.

    "},{"location":"commands/field_types/#examples","title":"Examples","text":""},{"location":"commands/field_types/#options","title":"Options","text":""},{"location":"commands/field_types/#global-options","title":"Global Options","text":""},{"location":"commands/field_types/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/field_widgets/","title":"field:widgets","text":"

    Lists field widgets.

    "},{"location":"commands/field_widgets/#examples","title":"Examples","text":""},{"location":"commands/field_widgets/#options","title":"Options","text":""},{"location":"commands/field_widgets/#global-options","title":"Global Options","text":""},{"location":"commands/field_widgets/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/generate/","title":"generate","text":"

    Generate boilerplate code for modules/plugins/services etc.

    Drush asks questions so that the generated code is as polished as possible. After generating, Drush lists the files that were created.

    See https://github.com/Chi-teck/drupal-code-generator for a README and bug reports.

    "},{"location":"commands/generate/#examples","title":"Examples","text":""},{"location":"commands/generate/#arguments","title":"Arguments","text":""},{"location":"commands/generate/#options","title":"Options","text":""},{"location":"commands/generate/#global-options","title":"Global Options","text":""},{"location":"commands/generate/#topics","title":"Topics","text":""},{"location":"commands/generate/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/help/","title":"help","text":"

    Display usage details for a command.

    "},{"location":"commands/help/#examples","title":"Examples","text":""},{"location":"commands/help/#arguments","title":"Arguments","text":""},{"location":"commands/help/#options","title":"Options","text":""},{"location":"commands/help/#global-options","title":"Global Options","text":""},{"location":"commands/help/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/image_derive/","title":"image:derive","text":"

    Create an image derivative.

    "},{"location":"commands/image_derive/#examples","title":"Examples","text":""},{"location":"commands/image_derive/#arguments","title":"Arguments","text":""},{"location":"commands/image_derive/#global-options","title":"Global Options","text":""},{"location":"commands/image_derive/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/image_flush/","title":"image:flush","text":"

    Flush all derived images for a given style.

    "},{"location":"commands/image_flush/#examples","title":"Examples","text":""},{"location":"commands/image_flush/#arguments","title":"Arguments","text":""},{"location":"commands/image_flush/#options","title":"Options","text":""},{"location":"commands/image_flush/#global-options","title":"Global Options","text":""},{"location":"commands/image_flush/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/jn_get/","title":"jn:get","text":"

    Execute a JSONAPI request.

    "},{"location":"commands/jn_get/#examples","title":"Examples","text":""},{"location":"commands/jn_get/#arguments","title":"Arguments","text":""},{"location":"commands/jn_get/#options","title":"Options","text":""},{"location":"commands/jn_get/#global-options","title":"Global Options","text":"

    Legend

    "},{"location":"commands/list/","title":"list","text":"

    List available commands.

    "},{"location":"commands/list/#examples","title":"Examples","text":""},{"location":"commands/list/#options","title":"Options","text":""},{"location":"commands/list/#global-options","title":"Global Options","text":"

    Legend

    "},{"location":"commands/locale_check/","title":"locale:check","text":"

    Checks for available translation updates.

    "},{"location":"commands/locale_check/#global-options","title":"Global Options","text":""},{"location":"commands/locale_check/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/locale_clear-status/","title":"locale:clear-status","text":"

    11.5+

    Clears the translation status.

    "},{"location":"commands/locale_clear-status/#global-options","title":"Global Options","text":""},{"location":"commands/locale_clear-status/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/locale_export/","title":"locale:export","text":"

    Exports to a gettext translation file.

    See Drupal Core: \\Drupal\\locale\\Form\\ExportForm::submitForm

    "},{"location":"commands/locale_export/#examples","title":"Examples","text":""},{"location":"commands/locale_export/#arguments","title":"Arguments","text":""},{"location":"commands/locale_export/#options","title":"Options","text":""},{"location":"commands/locale_export/#global-options","title":"Global Options","text":""},{"location":"commands/locale_export/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/locale_import-all/","title":"locale:import-all","text":"

    12.2+

    Imports multiple translation files from the defined directory.

    "},{"location":"commands/locale_import-all/#examples","title":"Examples","text":""},{"location":"commands/locale_import-all/#arguments","title":"Arguments","text":""},{"location":"commands/locale_import-all/#options","title":"Options","text":""},{"location":"commands/locale_import-all/#global-options","title":"Global Options","text":""},{"location":"commands/locale_import-all/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/locale_import/","title":"locale:import","text":"

    Imports to a gettext translation file.

    "},{"location":"commands/locale_import/#examples","title":"Examples","text":""},{"location":"commands/locale_import/#arguments","title":"Arguments","text":""},{"location":"commands/locale_import/#options","title":"Options","text":""},{"location":"commands/locale_import/#global-options","title":"Global Options","text":""},{"location":"commands/locale_import/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/locale_update/","title":"locale:update","text":"

    Imports the available translation updates.

    "},{"location":"commands/locale_update/#options","title":"Options","text":""},{"location":"commands/locale_update/#global-options","title":"Global Options","text":""},{"location":"commands/locale_update/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/maint_get/","title":"maint:get","text":"

    11.5+

    Get maintenance mode. Returns 1 if enabled, 0 if not.

    Consider using maint:status instead when chaining commands.

    "},{"location":"commands/maint_get/#examples","title":"Examples","text":""},{"location":"commands/maint_get/#global-options","title":"Global Options","text":""},{"location":"commands/maint_get/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/maint_set/","title":"maint:set","text":"

    11.5+

    Set maintenance mode.

    "},{"location":"commands/maint_set/#examples","title":"Examples","text":""},{"location":"commands/maint_set/#arguments","title":"Arguments","text":""},{"location":"commands/maint_set/#global-options","title":"Global Options","text":""},{"location":"commands/maint_set/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/maint_status/","title":"maint:status","text":"

    11.5+

    Fail if maintenance mode is enabled.

    This commands fails with exit code of 3 when maintenance mode is on. This special exit code distinguishes from a failure to complete.

    "},{"location":"commands/maint_status/#examples","title":"Examples","text":""},{"location":"commands/maint_status/#global-options","title":"Global Options","text":""},{"location":"commands/maint_status/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/migrate_fields-source/","title":"migrate:fields-source","text":"

    10.4+

    List the fields available for mapping in a source.

    "},{"location":"commands/migrate_fields-source/#examples","title":"Examples","text":""},{"location":"commands/migrate_fields-source/#arguments","title":"Arguments","text":""},{"location":"commands/migrate_fields-source/#options","title":"Options","text":""},{"location":"commands/migrate_fields-source/#global-options","title":"Global Options","text":""},{"location":"commands/migrate_fields-source/#topics","title":"Topics","text":""},{"location":"commands/migrate_fields-source/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/migrate_import/","title":"migrate:import","text":"

    10.4+

    Perform one or more migration processes.

    "},{"location":"commands/migrate_import/#examples","title":"Examples","text":""},{"location":"commands/migrate_import/#arguments","title":"Arguments","text":""},{"location":"commands/migrate_import/#options","title":"Options","text":""},{"location":"commands/migrate_import/#global-options","title":"Global Options","text":""},{"location":"commands/migrate_import/#topics","title":"Topics","text":""},{"location":"commands/migrate_import/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/migrate_messages/","title":"migrate:messages","text":"

    10.4+

    View any messages associated with a migration.

    "},{"location":"commands/migrate_messages/#examples","title":"Examples","text":""},{"location":"commands/migrate_messages/#arguments","title":"Arguments","text":""},{"location":"commands/migrate_messages/#options","title":"Options","text":""},{"location":"commands/migrate_messages/#global-options","title":"Global Options","text":""},{"location":"commands/migrate_messages/#topics","title":"Topics","text":""},{"location":"commands/migrate_messages/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/migrate_reset-status/","title":"migrate:reset-status","text":"

    10.4+

    Reset an active migration's status to idle.

    "},{"location":"commands/migrate_reset-status/#arguments","title":"Arguments","text":""},{"location":"commands/migrate_reset-status/#global-options","title":"Global Options","text":""},{"location":"commands/migrate_reset-status/#topics","title":"Topics","text":""},{"location":"commands/migrate_reset-status/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/migrate_rollback/","title":"migrate:rollback","text":"

    10.4+

    Rollback one or more migrations.

    "},{"location":"commands/migrate_rollback/#examples","title":"Examples","text":""},{"location":"commands/migrate_rollback/#arguments","title":"Arguments","text":""},{"location":"commands/migrate_rollback/#options","title":"Options","text":""},{"location":"commands/migrate_rollback/#global-options","title":"Global Options","text":""},{"location":"commands/migrate_rollback/#topics","title":"Topics","text":""},{"location":"commands/migrate_rollback/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/migrate_status/","title":"migrate:status","text":"

    10.4+

    List all migrations with current status.

    "},{"location":"commands/migrate_status/#examples","title":"Examples","text":""},{"location":"commands/migrate_status/#arguments","title":"Arguments","text":""},{"location":"commands/migrate_status/#options","title":"Options","text":""},{"location":"commands/migrate_status/#global-options","title":"Global Options","text":""},{"location":"commands/migrate_status/#topics","title":"Topics","text":""},{"location":"commands/migrate_status/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/migrate_stop/","title":"migrate:stop","text":"

    10.4+

    Stop an active migration operation.

    "},{"location":"commands/migrate_stop/#arguments","title":"Arguments","text":""},{"location":"commands/migrate_stop/#global-options","title":"Global Options","text":""},{"location":"commands/migrate_stop/#topics","title":"Topics","text":""},{"location":"commands/migrate_stop/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/mk_docs/","title":"mk:docs","text":"

    Build a Markdown document for each Drush command/generator that is available on a site.

    This command is an early step when building the www.drush.org static site. Adapt it to build a similar site listing the commands that are available on your site. Also see Drush's Github Actions workflow.

    "},{"location":"commands/mk_docs/#examples","title":"Examples","text":""},{"location":"commands/mk_docs/#arguments","title":"Arguments","text":""},{"location":"commands/mk_docs/#global-options","title":"Global Options","text":"

    Legend

    "},{"location":"commands/php_cli/","title":"php:cli","text":"

    Open an interactive shell on a Drupal site.

    "},{"location":"commands/php_cli/#examples","title":"Examples","text":""},{"location":"commands/php_cli/#options","title":"Options","text":""},{"location":"commands/php_cli/#global-options","title":"Global Options","text":""},{"location":"commands/php_cli/#topics","title":"Topics","text":""},{"location":"commands/php_cli/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/php_eval/","title":"php:eval","text":"

    Evaluate arbitrary php code after bootstrapping Drupal (if available).

    "},{"location":"commands/php_eval/#examples","title":"Examples","text":""},{"location":"commands/php_eval/#arguments","title":"Arguments","text":""},{"location":"commands/php_eval/#options","title":"Options","text":""},{"location":"commands/php_eval/#global-options","title":"Global Options","text":""},{"location":"commands/php_eval/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/php_script/","title":"php:script","text":"

    Run php a script after a full Drupal bootstrap.

    A useful alternative to eval command when your php is lengthy or you can't be bothered to figure out bash quoting. If you plan to share a script with others, consider making a full Drush command instead, since that's more self-documenting. Drush provides commandline options to the script via a variable called $extra.

    "},{"location":"commands/php_script/#examples","title":"Examples","text":""},{"location":"commands/php_script/#arguments","title":"Arguments","text":""},{"location":"commands/php_script/#options","title":"Options","text":""},{"location":"commands/php_script/#global-options","title":"Global Options","text":""},{"location":"commands/php_script/#topics","title":"Topics","text":""},{"location":"commands/php_script/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/pm_install/","title":"pm:install","text":"

    Enable one or more modules.

    "},{"location":"commands/pm_install/#examples","title":"Examples","text":""},{"location":"commands/pm_install/#arguments","title":"Arguments","text":""},{"location":"commands/pm_install/#global-options","title":"Global Options","text":""},{"location":"commands/pm_install/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/pm_list/","title":"pm:list","text":"

    Show a list of available extensions (modules and themes).

    "},{"location":"commands/pm_list/#options","title":"Options","text":""},{"location":"commands/pm_list/#global-options","title":"Global Options","text":""},{"location":"commands/pm_list/#topics","title":"Topics","text":""},{"location":"commands/pm_list/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/pm_security/","title":"pm:security","text":"

    Check Drupal Composer packages for pending security updates.

    This uses the Drupal security advisories package to determine if updates are available. An exit code of 3 indicates that the check completed, and insecure packages were found.

    "},{"location":"commands/pm_security/#examples","title":"Examples","text":""},{"location":"commands/pm_security/#options","title":"Options","text":""},{"location":"commands/pm_security/#global-options","title":"Global Options","text":""},{"location":"commands/pm_security/#topics","title":"Topics","text":""},{"location":"commands/pm_security/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/pm_uninstall/","title":"pm:uninstall","text":"

    Uninstall one or more modules and their dependent modules.

    "},{"location":"commands/pm_uninstall/#examples","title":"Examples","text":""},{"location":"commands/pm_uninstall/#arguments","title":"Arguments","text":""},{"location":"commands/pm_uninstall/#global-options","title":"Global Options","text":""},{"location":"commands/pm_uninstall/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/queue_delete/","title":"queue:delete","text":"

    Delete all items in a specific queue.

    "},{"location":"commands/queue_delete/#arguments","title":"Arguments","text":""},{"location":"commands/queue_delete/#global-options","title":"Global Options","text":""},{"location":"commands/queue_delete/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/queue_list/","title":"queue:list","text":"

    Returns a list of all defined queues.

    "},{"location":"commands/queue_list/#options","title":"Options","text":""},{"location":"commands/queue_list/#global-options","title":"Global Options","text":""},{"location":"commands/queue_list/#topics","title":"Topics","text":""},{"location":"commands/queue_list/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/queue_run/","title":"queue:run","text":"

    Run a specific queue by name.

    "},{"location":"commands/queue_run/#arguments","title":"Arguments","text":""},{"location":"commands/queue_run/#options","title":"Options","text":""},{"location":"commands/queue_run/#global-options","title":"Global Options","text":""},{"location":"commands/queue_run/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/role_create/","title":"role:create","text":"

    Create a new role.

    "},{"location":"commands/role_create/#examples","title":"Examples","text":""},{"location":"commands/role_create/#arguments","title":"Arguments","text":""},{"location":"commands/role_create/#global-options","title":"Global Options","text":""},{"location":"commands/role_create/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/role_delete/","title":"role:delete","text":"

    Delete a role.

    "},{"location":"commands/role_delete/#examples","title":"Examples","text":""},{"location":"commands/role_delete/#arguments","title":"Arguments","text":""},{"location":"commands/role_delete/#global-options","title":"Global Options","text":""},{"location":"commands/role_delete/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/role_list/","title":"role:list","text":"

    Display a list of all roles defined on the system.

    If a role name is provided as an argument, then all of the permissions of that role will be listed. If a permission name is provided as an option, then all of the roles that have been granted that permission will be listed.

    "},{"location":"commands/role_list/#examples","title":"Examples","text":""},{"location":"commands/role_list/#options","title":"Options","text":""},{"location":"commands/role_list/#global-options","title":"Global Options","text":""},{"location":"commands/role_list/#topics","title":"Topics","text":""},{"location":"commands/role_list/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/role_perm_add/","title":"role:perm:add","text":"

    Grant specified permission(s) to a role.

    "},{"location":"commands/role_perm_add/#examples","title":"Examples","text":""},{"location":"commands/role_perm_add/#arguments","title":"Arguments","text":""},{"location":"commands/role_perm_add/#global-options","title":"Global Options","text":""},{"location":"commands/role_perm_add/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/role_perm_remove/","title":"role:perm:remove","text":"

    Remove specified permission(s) from a role.

    "},{"location":"commands/role_perm_remove/#examples","title":"Examples","text":""},{"location":"commands/role_perm_remove/#arguments","title":"Arguments","text":""},{"location":"commands/role_perm_remove/#global-options","title":"Global Options","text":""},{"location":"commands/role_perm_remove/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/runserver/","title":"runserver","text":"

    Runs PHP's built-in http server for development.

    "},{"location":"commands/runserver/#examples","title":"Examples","text":""},{"location":"commands/runserver/#arguments","title":"Arguments","text":""},{"location":"commands/runserver/#options","title":"Options","text":""},{"location":"commands/runserver/#global-options","title":"Global Options","text":""},{"location":"commands/runserver/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/site_alias/","title":"site:alias","text":"

    Show site alias details, or a list of available site aliases.

    "},{"location":"commands/site_alias/#examples","title":"Examples","text":""},{"location":"commands/site_alias/#arguments","title":"Arguments","text":""},{"location":"commands/site_alias/#options","title":"Options","text":""},{"location":"commands/site_alias/#global-options","title":"Global Options","text":""},{"location":"commands/site_alias/#topics","title":"Topics","text":""},{"location":"commands/site_alias/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/site_install/","title":"site:install","text":"

    Install Drupal along with modules/themes/configuration/profile.

    "},{"location":"commands/site_install/#examples","title":"Examples","text":""},{"location":"commands/site_install/#arguments","title":"Arguments","text":""},{"location":"commands/site_install/#options","title":"Options","text":""},{"location":"commands/site_install/#global-options","title":"Global Options","text":""},{"location":"commands/site_install/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/site_set/","title":"site:set","text":"

    Set a site alias that will persist for the current session.

    Stores the site alias being used in the current session in a temporary file.

    "},{"location":"commands/site_set/#examples","title":"Examples","text":""},{"location":"commands/site_set/#arguments","title":"Arguments","text":""},{"location":"commands/site_set/#global-options","title":"Global Options","text":""},{"location":"commands/site_set/#topics","title":"Topics","text":""},{"location":"commands/site_set/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/site_ssh/","title":"site:ssh","text":"

    Connect to a webserver via SSH, and optionally run a shell command.

    "},{"location":"commands/site_ssh/#examples","title":"Examples","text":""},{"location":"commands/site_ssh/#arguments","title":"Arguments","text":""},{"location":"commands/site_ssh/#options","title":"Options","text":""},{"location":"commands/site_ssh/#global-options","title":"Global Options","text":""},{"location":"commands/site_ssh/#topics","title":"Topics","text":""},{"location":"commands/site_ssh/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_cli/","title":"sql:cli","text":"

    Open a SQL command-line interface using Drupal's credentials.

    "},{"location":"commands/sql_cli/#examples","title":"Examples","text":""},{"location":"commands/sql_cli/#options","title":"Options","text":""},{"location":"commands/sql_cli/#global-options","title":"Global Options","text":""},{"location":"commands/sql_cli/#topics","title":"Topics","text":""},{"location":"commands/sql_cli/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_connect/","title":"sql:connect","text":"

    A string for connecting to the DB.

    "},{"location":"commands/sql_connect/#examples","title":"Examples","text":""},{"location":"commands/sql_connect/#options","title":"Options","text":""},{"location":"commands/sql_connect/#global-options","title":"Global Options","text":""},{"location":"commands/sql_connect/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_create/","title":"sql:create","text":"

    Create a database.

    "},{"location":"commands/sql_create/#examples","title":"Examples","text":""},{"location":"commands/sql_create/#options","title":"Options","text":""},{"location":"commands/sql_create/#global-options","title":"Global Options","text":""},{"location":"commands/sql_create/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_drop/","title":"sql:drop","text":"

    Drop all tables in a given database.

    "},{"location":"commands/sql_drop/#options","title":"Options","text":""},{"location":"commands/sql_drop/#global-options","title":"Global Options","text":""},{"location":"commands/sql_drop/#topics","title":"Topics","text":""},{"location":"commands/sql_drop/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_dump/","title":"sql:dump","text":"

    Exports the Drupal DB as SQL using mysqldump or equivalent.

    --create-db is used by sql-sync, since including the DROP TABLE statements interferes with the import when the database is created.

    "},{"location":"commands/sql_dump/#examples","title":"Examples","text":""},{"location":"commands/sql_dump/#options","title":"Options","text":""},{"location":"commands/sql_dump/#global-options","title":"Global Options","text":""},{"location":"commands/sql_dump/#topics","title":"Topics","text":""},{"location":"commands/sql_dump/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_query/","title":"sql:query","text":"

    Execute a query against a database.

    "},{"location":"commands/sql_query/#examples","title":"Examples","text":""},{"location":"commands/sql_query/#arguments","title":"Arguments","text":""},{"location":"commands/sql_query/#options","title":"Options","text":""},{"location":"commands/sql_query/#global-options","title":"Global Options","text":""},{"location":"commands/sql_query/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_sanitize/","title":"sql:sanitize","text":"

    Sanitize the database by removing or obfuscating user data.

    Commandfiles may add custom operations by implementing:

    - `#[CLI\\Hook(type: HookManager::ON_EVENT, target: 'sql-sanitize-confirms')]`. Display summary to user before confirmation.\n- `#[CLI\\Hook(type: HookManager::POST_COMMAND_HOOK, target: 'sql:sanitize')]`. Run queries or call APIs to perform sanitizing\n

    Several working commandfiles may be found at https://github.com/drush-ops/drush/tree/12.x/src/Drupal/Commands/sql

    "},{"location":"commands/sql_sanitize/#examples","title":"Examples","text":""},{"location":"commands/sql_sanitize/#options","title":"Options","text":""},{"location":"commands/sql_sanitize/#global-options","title":"Global Options","text":""},{"location":"commands/sql_sanitize/#topics","title":"Topics","text":""},{"location":"commands/sql_sanitize/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/sql_sync/","title":"sql:sync","text":"

    Copy DB data from a source site to a target site. Transfers data via rsync.

    "},{"location":"commands/sql_sync/#examples","title":"Examples","text":""},{"location":"commands/sql_sync/#arguments","title":"Arguments","text":""},{"location":"commands/sql_sync/#options","title":"Options","text":""},{"location":"commands/sql_sync/#global-options","title":"Global Options","text":""},{"location":"commands/sql_sync/#topics","title":"Topics","text":""},{"location":"commands/sql_sync/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/state_delete/","title":"state:delete","text":"

    Delete a state entry.

    "},{"location":"commands/state_delete/#examples","title":"Examples","text":""},{"location":"commands/state_delete/#arguments","title":"Arguments","text":""},{"location":"commands/state_delete/#global-options","title":"Global Options","text":""},{"location":"commands/state_delete/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/state_get/","title":"state:get","text":"

    Display a state value.

    "},{"location":"commands/state_get/#examples","title":"Examples","text":""},{"location":"commands/state_get/#arguments","title":"Arguments","text":""},{"location":"commands/state_get/#options","title":"Options","text":""},{"location":"commands/state_get/#global-options","title":"Global Options","text":""},{"location":"commands/state_get/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/state_set/","title":"state:set","text":"

    Set a state value.

    "},{"location":"commands/state_set/#examples","title":"Examples","text":""},{"location":"commands/state_set/#arguments","title":"Arguments","text":""},{"location":"commands/state_set/#options","title":"Options","text":""},{"location":"commands/state_set/#global-options","title":"Global Options","text":""},{"location":"commands/state_set/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/theme_install/","title":"theme:install","text":"

    Install one or more themes.

    "},{"location":"commands/theme_install/#arguments","title":"Arguments","text":""},{"location":"commands/theme_install/#global-options","title":"Global Options","text":""},{"location":"commands/theme_install/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/theme_uninstall/","title":"theme:uninstall","text":"

    Uninstall themes.

    "},{"location":"commands/theme_uninstall/#arguments","title":"Arguments","text":""},{"location":"commands/theme_uninstall/#global-options","title":"Global Options","text":""},{"location":"commands/theme_uninstall/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/twig_compile/","title":"twig:compile","text":"

    Compile all Twig template(s).

    "},{"location":"commands/twig_compile/#global-options","title":"Global Options","text":""},{"location":"commands/twig_compile/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/twig_debug/","title":"twig:debug","text":"

    12.1+

    Enables Twig debug and disables caching Twig templates.

    "},{"location":"commands/twig_debug/#arguments","title":"Arguments","text":""},{"location":"commands/twig_debug/#global-options","title":"Global Options","text":""},{"location":"commands/twig_debug/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/twig_unused/","title":"twig:unused","text":"

    Find potentially unused Twig templates.

    Immediately before running this command, web crawl your entire web site. Or use your Production PHPStorage dir for comparison.

    "},{"location":"commands/twig_unused/#examples","title":"Examples","text":""},{"location":"commands/twig_unused/#arguments","title":"Arguments","text":""},{"location":"commands/twig_unused/#options","title":"Options","text":""},{"location":"commands/twig_unused/#global-options","title":"Global Options","text":""},{"location":"commands/twig_unused/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/updatedb/","title":"updatedb","text":"

    Apply any database updates required (as with running update.php).

    "},{"location":"commands/updatedb/#options","title":"Options","text":""},{"location":"commands/updatedb/#global-options","title":"Global Options","text":""},{"location":"commands/updatedb/#topics","title":"Topics","text":""},{"location":"commands/updatedb/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/updatedb_status/","title":"updatedb:status","text":"

    List any pending database updates.

    "},{"location":"commands/updatedb_status/#options","title":"Options","text":""},{"location":"commands/updatedb_status/#global-options","title":"Global Options","text":""},{"location":"commands/updatedb_status/#topics","title":"Topics","text":""},{"location":"commands/updatedb_status/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_block/","title":"user:block","text":"

    Block the specified user(s).

    "},{"location":"commands/user_block/#examples","title":"Examples","text":""},{"location":"commands/user_block/#arguments","title":"Arguments","text":""},{"location":"commands/user_block/#options","title":"Options","text":""},{"location":"commands/user_block/#global-options","title":"Global Options","text":""},{"location":"commands/user_block/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_cancel/","title":"user:cancel","text":"

    Block or delete user account(s) with the specified name(s).

    "},{"location":"commands/user_cancel/#examples","title":"Examples","text":""},{"location":"commands/user_cancel/#arguments","title":"Arguments","text":""},{"location":"commands/user_cancel/#options","title":"Options","text":""},{"location":"commands/user_cancel/#global-options","title":"Global Options","text":""},{"location":"commands/user_cancel/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_create/","title":"user:create","text":"

    Create a user account.

    "},{"location":"commands/user_create/#examples","title":"Examples","text":""},{"location":"commands/user_create/#arguments","title":"Arguments","text":""},{"location":"commands/user_create/#options","title":"Options","text":""},{"location":"commands/user_create/#global-options","title":"Global Options","text":""},{"location":"commands/user_create/#topics","title":"Topics","text":""},{"location":"commands/user_create/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_information/","title":"user:information","text":"

    Print information about the specified user(s).

    "},{"location":"commands/user_information/#examples","title":"Examples","text":""},{"location":"commands/user_information/#arguments","title":"Arguments","text":""},{"location":"commands/user_information/#options","title":"Options","text":""},{"location":"commands/user_information/#global-options","title":"Global Options","text":""},{"location":"commands/user_information/#topics","title":"Topics","text":""},{"location":"commands/user_information/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_login/","title":"user:login","text":"

    Display a one time login link for user ID 1, or another user.

    "},{"location":"commands/user_login/#examples","title":"Examples","text":""},{"location":"commands/user_login/#arguments","title":"Arguments","text":""},{"location":"commands/user_login/#options","title":"Options","text":""},{"location":"commands/user_login/#global-options","title":"Global Options","text":""},{"location":"commands/user_login/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_password/","title":"user:password","text":"

    Set the password for the user account with the specified name.

    "},{"location":"commands/user_password/#examples","title":"Examples","text":""},{"location":"commands/user_password/#arguments","title":"Arguments","text":""},{"location":"commands/user_password/#global-options","title":"Global Options","text":""},{"location":"commands/user_password/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_role_add/","title":"user:role:add","text":"

    Add a role to the specified user accounts.

    "},{"location":"commands/user_role_add/#examples","title":"Examples","text":""},{"location":"commands/user_role_add/#arguments","title":"Arguments","text":""},{"location":"commands/user_role_add/#options","title":"Options","text":""},{"location":"commands/user_role_add/#global-options","title":"Global Options","text":""},{"location":"commands/user_role_add/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_role_remove/","title":"user:role:remove","text":"

    Remove a role from the specified user accounts.

    "},{"location":"commands/user_role_remove/#examples","title":"Examples","text":""},{"location":"commands/user_role_remove/#arguments","title":"Arguments","text":""},{"location":"commands/user_role_remove/#options","title":"Options","text":""},{"location":"commands/user_role_remove/#global-options","title":"Global Options","text":""},{"location":"commands/user_role_remove/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/user_unblock/","title":"user:unblock","text":"

    Unblock the specified user(s).

    "},{"location":"commands/user_unblock/#examples","title":"Examples","text":""},{"location":"commands/user_unblock/#arguments","title":"Arguments","text":""},{"location":"commands/user_unblock/#options","title":"Options","text":""},{"location":"commands/user_unblock/#global-options","title":"Global Options","text":""},{"location":"commands/user_unblock/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/version/","title":"version","text":"

    Show Drush version.

    "},{"location":"commands/version/#options","title":"Options","text":""},{"location":"commands/version/#global-options","title":"Global Options","text":""},{"location":"commands/version/#topics","title":"Topics","text":"

    Legend

    "},{"location":"commands/views_dev/","title":"views:dev","text":"

    Set several Views settings to more developer-oriented values.

    "},{"location":"commands/views_dev/#global-options","title":"Global Options","text":""},{"location":"commands/views_dev/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/views_disable/","title":"views:disable","text":"

    Disable the specified views.

    "},{"location":"commands/views_disable/#examples","title":"Examples","text":""},{"location":"commands/views_disable/#arguments","title":"Arguments","text":""},{"location":"commands/views_disable/#global-options","title":"Global Options","text":""},{"location":"commands/views_disable/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/views_enable/","title":"views:enable","text":"

    Enable the specified views.

    "},{"location":"commands/views_enable/#examples","title":"Examples","text":""},{"location":"commands/views_enable/#arguments","title":"Arguments","text":""},{"location":"commands/views_enable/#global-options","title":"Global Options","text":""},{"location":"commands/views_enable/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/views_execute/","title":"views:execute","text":"

    Execute a view and show a count of the results, or the rendered HTML.

    "},{"location":"commands/views_execute/#examples","title":"Examples","text":""},{"location":"commands/views_execute/#arguments","title":"Arguments","text":""},{"location":"commands/views_execute/#options","title":"Options","text":""},{"location":"commands/views_execute/#global-options","title":"Global Options","text":""},{"location":"commands/views_execute/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/views_list/","title":"views:list","text":"

    Get a list of all views in the system.

    "},{"location":"commands/views_list/#examples","title":"Examples","text":""},{"location":"commands/views_list/#options","title":"Options","text":""},{"location":"commands/views_list/#global-options","title":"Global Options","text":""},{"location":"commands/views_list/#topics","title":"Topics","text":""},{"location":"commands/views_list/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/watchdog_delete/","title":"watchdog:delete","text":"

    Delete watchdog log records.

    "},{"location":"commands/watchdog_delete/#examples","title":"Examples","text":""},{"location":"commands/watchdog_delete/#arguments","title":"Arguments","text":""},{"location":"commands/watchdog_delete/#options","title":"Options","text":""},{"location":"commands/watchdog_delete/#global-options","title":"Global Options","text":""},{"location":"commands/watchdog_delete/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/watchdog_list/","title":"watchdog:list","text":"

    Interactively filter the watchdog message listing.

    "},{"location":"commands/watchdog_list/#examples","title":"Examples","text":""},{"location":"commands/watchdog_list/#arguments","title":"Arguments","text":""},{"location":"commands/watchdog_list/#options","title":"Options","text":""},{"location":"commands/watchdog_list/#global-options","title":"Global Options","text":""},{"location":"commands/watchdog_list/#topics","title":"Topics","text":""},{"location":"commands/watchdog_list/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/watchdog_show-one/","title":"watchdog:show-one","text":"

    Show one log record by ID.

    "},{"location":"commands/watchdog_show-one/#arguments","title":"Arguments","text":""},{"location":"commands/watchdog_show-one/#options","title":"Options","text":""},{"location":"commands/watchdog_show-one/#global-options","title":"Global Options","text":""},{"location":"commands/watchdog_show-one/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/watchdog_show/","title":"watchdog:show","text":"

    Show watchdog messages.

    "},{"location":"commands/watchdog_show/#examples","title":"Examples","text":""},{"location":"commands/watchdog_show/#arguments","title":"Arguments","text":""},{"location":"commands/watchdog_show/#options","title":"Options","text":""},{"location":"commands/watchdog_show/#global-options","title":"Global Options","text":""},{"location":"commands/watchdog_show/#topics","title":"Topics","text":""},{"location":"commands/watchdog_show/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/watchdog_tail/","title":"watchdog:tail","text":"

    10.6+

    Tail watchdog messages.

    "},{"location":"commands/watchdog_tail/#examples","title":"Examples","text":""},{"location":"commands/watchdog_tail/#arguments","title":"Arguments","text":""},{"location":"commands/watchdog_tail/#options","title":"Options","text":""},{"location":"commands/watchdog_tail/#global-options","title":"Global Options","text":""},{"location":"commands/watchdog_tail/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/yaml_get_value/","title":"yaml:get:value","text":"

    12.0+

    Get a value for a specific key in a YAML file.

    See https://github.com/grasmash/yaml-cli for a README and bug reports.

    "},{"location":"commands/yaml_get_value/#arguments","title":"Arguments","text":""},{"location":"commands/yaml_get_value/#global-options","title":"Global Options","text":""},{"location":"commands/yaml_get_value/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/yaml_lint/","title":"yaml:lint","text":"

    12.0+

    Validates that a given YAML file has valid syntax.

    See https://github.com/grasmash/yaml-cli for a README and bug reports.

    "},{"location":"commands/yaml_lint/#arguments","title":"Arguments","text":""},{"location":"commands/yaml_lint/#global-options","title":"Global Options","text":""},{"location":"commands/yaml_lint/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/yaml_unset_key/","title":"yaml:unset:key","text":"

    12.0+

    Unset a specific key in a YAML file.

    See https://github.com/grasmash/yaml-cli for a README and bug reports.

    "},{"location":"commands/yaml_unset_key/#arguments","title":"Arguments","text":""},{"location":"commands/yaml_unset_key/#global-options","title":"Global Options","text":""},{"location":"commands/yaml_unset_key/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/yaml_update_key/","title":"yaml:update:key","text":"

    12.0+

    Update a specific key in a YAML file.

    See https://github.com/grasmash/yaml-cli for a README and bug reports.

    "},{"location":"commands/yaml_update_key/#arguments","title":"Arguments","text":""},{"location":"commands/yaml_update_key/#global-options","title":"Global Options","text":""},{"location":"commands/yaml_update_key/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"commands/yaml_update_value/","title":"yaml:update:value","text":"

    12.0+

    Update the value for a specific key in a YAML file.

    See https://github.com/grasmash/yaml-cli for a README and bug reports.

    "},{"location":"commands/yaml_update_value/#arguments","title":"Arguments","text":""},{"location":"commands/yaml_update_value/#options","title":"Options","text":""},{"location":"commands/yaml_update_value/#global-options","title":"Global Options","text":""},{"location":"commands/yaml_update_value/#aliases","title":"Aliases","text":"

    Legend

    "},{"location":"contribute/CONTRIBUTING/","title":"Guidelines","text":"

    Drush is built by people like you! Please join us.

    "},{"location":"contribute/CONTRIBUTING/#git-and-pull-requests","title":"Git and Pull requests","text":""},{"location":"contribute/CONTRIBUTING/#development-environment","title":"Development Environment","text":""},{"location":"contribute/CONTRIBUTING/#coding-style","title":"Coding style","text":""},{"location":"contribute/CONTRIBUTING/#documentation","title":"Documentation","text":""},{"location":"contribute/unish/","title":"Unish","text":"

    Drush's test suite (aka Unish) is based on PHPUnit. In order to maintain high quality, our tests are run on every push. See CircleCi.

    "},{"location":"contribute/unish/#usage","title":"Usage","text":"
    1. git clone https://github.com/drush-ops/drush.git
    2. cd drush
    3. composer install
    4. Review the configuration settings in tests/phpunit.xml.dist. If customization is needed, copy phpunit.xml.dist to phpunit.xml and edit away.
    5. Run all test suites: composer test
    "},{"location":"contribute/unish/#ddev","title":"DDEV","text":"

    11.0+

    Drush's own tests may be run within provided Docker containers via DDEV

    "},{"location":"contribute/unish/#advanced-usage","title":"Advanced usage","text":""},{"location":"contribute/unish/#about-the-test-suites","title":"About the Test Suites","text":""},{"location":"contribute/unish/#drush-test-traits","title":"Drush Test Traits","text":"

    Drush provides test traits that may be used to test your own Drush extensions. Adding the traits varies slightly depending how you package your Drush extension.

    Once you successfully have use Drush\\TestTraits\\DrushTestTrait in your test class, you are able to write simple tests that call your extension's commands and makes assertions against the output.

        public function testMyCommand()\n    {\n        $this->drush('my:command', ['param'], ['flag' => 'value']);\n        $this->assertOutputEquals('The parameter is \"param\" and the \"flag\" option is \"value\"');\n    }\n

    "},{"location":"examples/ArtCommands.php/","title":"ArtCommands.php","text":"
    <?php\n\nnamespace Drush\\Commands;\n\nuse Consolidation\\AnnotatedCommand\\AnnotationData;\nuse Consolidation\\AnnotatedCommand\\CommandData;\nuse Consolidation\\AnnotatedCommand\\Events\\CustomEventAwareInterface;\nuse Consolidation\\AnnotatedCommand\\Events\\CustomEventAwareTrait;\nuse Consolidation\\AnnotatedCommand\\Hooks\\HookManager;\nuse Consolidation\\OutputFormatters\\StructuredData\\RowsOfFields;\nuse Drush\\Attributes as CLI;\nuse Drush\\Style\\DrushStyle;\nuse Symfony\\Component\\Console\\Input\\InputInterface;\nuse Symfony\\Component\\Console\\Output\\OutputInterface;\n\n/**\n * Run these commands using the --include option - e.g. `drush --include=/path/to/drush/examples art sandwich`\n *\n * See [Drush Test Traits](https://github.com/drush-ops/drush/blob/12.x/docs/contribute/unish.md#about-the-test-suites) for info on testing Drush commands.\n */\n\nclass ArtCommands extends DrushCommands implements CustomEventAwareInterface\n{\n    use CustomEventAwareTrait;\n\n    /** @var string[] */\n    protected ?array $arts;\n\n    /**\n     * Show a fabulous picture.\n     */\n    #[CLI\\Command(name: 'artwork:show', aliases: ['arts'])]\n    #[CLI\\Argument(name: 'art', description: 'The name of the art to display')]\n    #[CLI\\Usage(name: 'drush art sandwich', description: 'Show a marvelous picture of a sandwich with pickles.')]\n    public function art($art = '')\n    {\n        $data = $this->getArt();\n        $name = $data[$art]['name'];\n        $description = $data[$art]['description'];\n        $path = $data[$art]['path'];\n        $msg = dt(\n            'Okay. Here is {art}: {description}',\n            ['art' => $name, 'description' => $description]\n        );\n        $this->output()->writeln(\"\\n\" . $msg . \"\\n\");\n        $this->printFile($path);\n    }\n\n    /**\n     * Show a table of information about available art.\n     */\n    #[CLI\\Command(name: 'artwork:list', aliases: ['artls'])]\n    #[CLI\\FieldLabels(labels: ['name' => 'Name', 'description' => 'Description', 'path' => 'Path'])]\n    #[CLI\\DefaultTableFields(fields: ['name', 'description'])]\n    #[CLI\\FilterDefaultField(field: 'name')]\n    public function listArt($options = ['format' => 'table']): RowsOfFields\n    {\n        $data = $this->getArt();\n        return new RowsOfFields($data);\n    }\n\n    /**\n     * Commandfiles may also add topics.  These will appear in\n     * the list of topics when `drush topic` is executed.\n     * To view the topic below, run `drush --include=/full/path/to/examples topic`\n     */\n\n    /**\n     * Ruminations on the true meaning and philosophy of artwork.\n     */\n    #[CLI\\Command(name: 'artwork:explain')]\n    #[CLI\\Topics(isTopic: true, path: __DIR__ . '/art-topic.md')]\n    #[CLI\\Help(hidden: true)]\n    public function ruminate(): void\n    {\n        self::printFile($this->commandData);\n    }\n\n    /**\n     * Return the available built-in art. Any Drush commandfile may provide\n     * more art by implementing a 'drush-art' on-event hook. This on-event\n     * hook is defined in the 'findArt' method below.\n     */\n    #[CLI\\Hook(type: HookManager::ON_EVENT, target: 'drush-art')]\n    public function builtInArt()\n    {\n        return [\n            'drush' => [\n                'name' => 'Drush',\n                'description' => 'The Drush logo.',\n                'path' => __DIR__ . '/art/drush-nocolor.txt',\n            ],\n            'sandwich' => [\n                'name' => 'Sandwich',\n                'description' => 'A tasty meal with bread often consumed at lunchtime.',\n                'path' => __DIR__ . '/art/sandwich-nocolor.txt',\n            ],\n        ];\n    }\n\n    #[CLI\\Hook(type: HookManager::INTERACT, target: 'artwork:show')]\n    public function interact(InputInterface $input, OutputInterface $output, AnnotationData $annotationData)\n    {\n        $io = new DrushStyle($input, $output);\n\n        // If the user did not specify any artwork, then prompt for one.\n        $art = $input->getArgument('art');\n        if (empty($art)) {\n            $data = $this->getArt();\n            $selections = $this->convertArtListToKeyValue($data);\n            $selection = $io->choice('Select art to display', $selections);\n            $input->setArgument('art', $selection);\n        }\n    }\n\n    #[CLI\\Hook(type: HookManager::ARGUMENT_VALIDATOR, target: 'artwork:show')]\n    public function artValidate(CommandData $commandData)\n    {\n        $art = $commandData->input()->getArgument('art');\n        $data = $this->getArt();\n        if (!isset($data[$art])) {\n            throw new \\Exception(dt('I do not have any art called \"{name}\".', ['name' => $art]));\n        }\n    }\n\n    /**\n     * Get a list of available artwork. Cache result for future fast access.\n     */\n    protected function getArt(): array\n    {\n        if (!isset($this->arts)) {\n            $this->arts = $this->findArt();\n        }\n        return $this->arts;\n    }\n\n    /**\n     * Use custom defined on-event hook 'drush-art' to find available artwork.\n     */\n    protected function findArt()\n    {\n        $arts = [];\n        $handlers = $this->getCustomEventHandlers('drush-art');\n        foreach ($handlers as $handler) {\n            $handlerResult = $handler();\n            $arts = array_merge($arts, $handlerResult);\n        }\n        return $arts;\n    }\n\n    /**\n     * Given a list of artwork, convert to a 'key' => 'Name: Description' array.\n     */\n    protected function convertArtListToKeyValue(array $data): array\n    {\n        $result = [];\n        foreach ($data as $key => $item) {\n            $result[$key] = $item['name'] . ': ' . $item['description'];\n        }\n        return $result;\n    }\n}\n
    "},{"location":"examples/PolicyCommands.php/","title":"PolicyCommands.php","text":"
    <?php\n\nnamespace Drush\\Commands;\n\nuse Consolidation\\AnnotatedCommand\\CommandData;\nuse Consolidation\\AnnotatedCommand\\Hooks\\HookManager;\nuse Drush\\Attributes as CLI;\nuse Drush\\Commands\\core\\RsyncCommands;\nuse Drush\\Commands\\core\\UpdateDBCommands;\nuse Drush\\Commands\\DrushCommands;\nuse Drush\\Commands\\sql\\SqlSyncCommands;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\n/**\n * Load this commandfile using the --include option - e.g. `drush --include=/path/to/drush/examples`\n *\n * See [Drush Test Traits](https://github.com/drush-ops/drush/blob/12.x/docs/contribute/unish.md#about-the-test-suites) for info on testing Drush commands.\n */\n\nclass PolicyCommands extends DrushCommands\n{\n    /**\n     * Prevent catastrophic braino. Note that this file has to be local to the\n     * machine that initiates the sql:sync command.\n     *\n     * @throws \\Exception\n     */\n    #[CLI\\Hook(type: HookManager::ARGUMENT_VALIDATOR, target: SqlSyncCommands::SYNC)]\n    public function sqlSyncValidate(CommandData $commandData)\n    {\n        if ($commandData->input()->getArgument('destination') == '@prod') {\n            throw new \\Exception(dt('Per !file, you may never overwrite the production database.', ['!file' => __FILE__]));\n        }\n    }\n\n    /**\n     * Limit rsync operations to production site.\n     */\n    #[CLI\\Hook(type: HookManager::ARGUMENT_VALIDATOR, target: RsyncCommands::RSYNC)]\n    public function rsyncValidate(CommandData $commandData)\n    {\n        if (preg_match(\"/^@prod/\", $commandData->input()->getArgument('destination'))) {\n            throw new \\Exception(dt('Per !file, you may never rsync to the production site.', ['!file' => __FILE__]));\n        }\n    }\n\n    /**\n     * Unauthorized may not execute updates.\n     */\n    #[CLI\\Hook(type: HookManager::ARGUMENT_VALIDATOR, target: UpdateDBCommands::UPDATEDB)]\n    public function validateUpdateDb(CommandData $commandData)\n    {\n        if (!$commandData->input()->getOption('secret') == 'mysecret') {\n            throw new \\Exception(dt('UpdateDb command requires a secret token per site policy.'));\n        }\n    }\n\n    #[CLI\\Hook(type: HookManager::OPTION_HOOK, target: UpdateDBCommands::UPDATEDB)]\n    #[CLI\\Option(name: 'secret', description: 'A required token else user may not run updatedb command.')]\n    public function optionsetUpdateDb($options = ['secret' => self::REQ])\n    {\n    }\n}\n
    "},{"location":"examples/SiteAliasAlterCommands.php/","title":"SiteAliasAlterCommands.php","text":"
    <?php\n\nnamespace Drush\\Commands;\n\nuse Consolidation\\AnnotatedCommand\\AnnotationData;\nuse Consolidation\\AnnotatedCommand\\Hooks\\HookManager;\nuse Consolidation\\SiteAlias\\SiteAliasManagerAwareInterface;\nuse Consolidation\\SiteAlias\\SiteAliasManagerAwareTrait;\nuse Drush\\Attributes as CLI;\nuse Symfony\\Component\\Console\\Input\\InputInterface;\n\n/**\n * Load this example by using the --include option - e.g. `drush --include=/path/to/drush/examples`\n */\nclass SiteAliasAlterCommands extends DrushCommands implements SiteAliasManagerAwareInterface\n{\n    use SiteAliasManagerAwareTrait;\n\n    /**\n     * A few example alterations to site aliases.\n     */\n    #[CLI\\Hook(type: HookManager::PRE_INITIALIZE, target: '*')]\n    public function alter(InputInterface $input, AnnotationData $annotationData)\n    {\n        $self = $this->siteAliasManager()->getSelf();\n        if ($self->isRemote()) {\n            // Always pass along ssh keys.\n            if (!$self->has('ssh.options')) {\n                // Don't edit the alias - edit the general config service instead.\n                $this->getConfig()->set('ssh.options', '-o ForwardAgent=yes');\n            }\n\n            // Change the SSH user.\n            $input->setOption('remote-user', 'mw2');\n\n            // Test to see if specific environment really exists in wildcard\n            // aliases, but only if the target is a specific host.\n            $host = $self->get('host');\n            if (preg_match('#\\.myserver.com$#', $host)) {\n                $ip = gethostbyname($host);\n                // If the return value of gethostbyname equals its input parameter,\n                // that indicates failure.\n                if ($host == $ip) {\n                    $aliasName = $self->name();\n                    throw new \\Exception(\"The alias $aliasName refers to an environment that does not exist.\");\n                }\n            }\n        }\n    }\n}\n
    "},{"location":"examples/SyncViaHttpCommands.php/","title":"SyncViaHttpCommands.php","text":"
    <?php\n\nnamespace Drush\\Commands;\n\nuse Consolidation\\AnnotatedCommand\\CommandData;\nuse Consolidation\\AnnotatedCommand\\Hooks\\HookManager;\nuse Drush\\Attributes as CLI;\nuse Drush\\Commands\\DrushCommands;\nuse Drush\\Commands\\sql\\SqlSyncCommands;\nuse Drush\\Drush;\nuse Drush\\Exec\\ExecTrait;\nuse Symfony\\Component\\Filesystem\\Filesystem;\n\n/**\n * Load this commandfile using the --include option - e.g. `drush --include=/path/to/drush/examples`\n */\n\nclass SyncViaHttpCommands extends DrushCommands\n{\n  /**\n   * When a hook extends a command with additional options, it must\n   * implement declare those option(s) in a @hook option like this one.  Doing so will add\n   * the option to the help text for the modified command, and will also\n   * allow the new option to be specified on the command line.  Without\n   * this, Drush will fail with an error when a user attempts to use\n   * an unknown option.\n   */\n    #[CLI\\Hook(type: HookManager::OPTION_HOOK, target: SqlSyncCommands::SYNC)]\n    #[CLI\\Option(name: 'http-sync', description: 'Copy the database via http instead of rsync.  Value is the url that the existing database dump can be found at.')]\n    #[CLI\\Option(name: 'http-sync-user', description: 'Username for the protected directory containing the sql dump.')]\n    #[CLI\\Option(name: 'http-sync-password', description: 'Password for the same directory.')]\n    public function optionsetSqlSync()\n    {\n    }\n\n    /**\n     * During the pre hook, determine if the http-sync option has been\n     * specified.  If it has been, then disable the normal ssh + rsync\n     * dump-and-transfer that sql-sync usually does, and transfer the\n     * database dump via an http download.\n     */\n    #[CLI\\Hook(type: HookManager::PRE_COMMAND_HOOK, target: SqlSyncCommands::SYNC)]\n    public function preSqlSync(CommandData $commandData)\n    {\n        $sql_dump_download_url = $commandData->input()->getOption('http-sync');\n        if (!empty($sql_dump_download_url)) {\n            $user = $commandData->input()->getOption('http-sync-user');\n            $password = $commandData->input()->getOption('http-sync-password');\n            $source_dump_file = $this->downloadFile($sql_dump_download_url, $user, $password);\n            $commandData->input()->setOption('target-dump', $source_dump_file);\n            $commandData->input()->setOption('no-dump', true);\n            $commandData->input()->setOption('no-sync', true);\n        }\n    }\n\n    /**\n     * Downloads a file.\n     *\n     * Optionally uses user authentication, using either wget or curl, as available.\n     */\n    protected function downloadFile($url, $user = false, $password = false, $destination = false, $overwrite = true)\n    {\n        static $use_wget;\n        if ($use_wget === null) {\n            $use_wget = ExecTrait::programExists('wget');\n        }\n\n        $destination_tmp = drush_tempnam('download_file');\n        if ($use_wget) {\n            $args = ['wget', '-q', '--timeout=30'];\n            if ($user && $password) {\n                $args = array_merge($args, [\"--user=$user\", \"--password=$password\", '-O', $destination_tmp, $url]);\n            } else {\n                $args = array_merge($args, ['-O', $destination_tmp, $url]);\n            }\n        } else {\n            $args = ['curl', '-s', '-L', '--connect-timeout 30'];\n            if ($user && $password) {\n                $args = array_merge($args, ['--user', \"$user:$password\", '-o', $destination_tmp, $url]);\n            } else {\n                $args = array_merge($args, ['-o', $destination_tmp, $url]);\n            }\n        }\n        $process = Drush::process($args);\n        $process->mustRun();\n\n        if (!Drush::simulate()) {\n            if (!drush_file_not_empty($destination_tmp) && $file = @file_get_contents($url)) {\n                @file_put_contents($destination_tmp, $file);\n            }\n            if (!drush_file_not_empty($destination_tmp)) {\n                // Download failed.\n                throw new \\Exception(dt(\"The URL !url could not be downloaded.\", ['!url' => $url]));\n            }\n        }\n        if ($destination) {\n            $fs = new Filesystem();\n            $fs->rename($destination_tmp, $destination, $overwrite);\n            return $destination;\n        }\n        return $destination_tmp;\n    }\n}\n
    "},{"location":"examples/XkcdCommands.php/","title":"XkcdCommands.php","text":"
    <?php\n\nnamespace Drush\\Commands;\n\nuse Drush\\Attributes as CLI;\nuse Drush\\Exec\\ExecTrait;\n\n/**\n * Run these commands using the --include option - e.g. `drush --include=/path/to/drush/examples xkcd`\n *\n * For an example of a Drush extension with tests for Drush:\n * - https://github.com/drush-ops/example-drush-extension\n */\n\nclass XkcdCommands extends DrushCommands\n{\n    use ExecTrait;\n\n    /**\n     * Retrieve and display xkcd cartoons.\n     */\n    #[CLI\\Command(name: 'xkcd:fetch', aliases: ['xkcd'])]\n    #[CLI\\Option(name: 'search', description: 'Optional argument to retrieve the cartoons matching an index number, keyword search or \"random\". If omitted the latest cartoon will be retrieved.')]\n    #[CLI\\Option(name: 'image-viewer', description: 'Command to use to view images (e.g. xv, firefox). Defaults to \"display\" (from ImageMagick).')]\n    #[CLI\\Option(name: 'google-custom-search-api-key', description: 'Google Custom Search API Key, available from https://code.google.com/apis/console/. Default key limited to 100 queries/day globally.')]\n    #[CLI\\Usage(name: 'drush xkcd', description: 'Retrieve and display the latest cartoon.')]\n    #[CLI\\Usage(name: 'drush xkcd sandwich', description: 'Retrieve and display cartoons about sandwiches.')]\n    #[CLI\\Usage(name: 'drush xkcd 123 --image-viewer=eog', description: 'Retrieve and display cartoon #123 in eog.')]\n    #[CLI\\Usage(name: 'drush xkcd random --image-viewer=firefox', description: 'Retrieve and display a random cartoon in Firefox.')]\n    public function fetch($search = null, $options = ['image-viewer' => 'open', 'google-custom-search-api-key' => 'AIzaSyDpE01VDNNT73s6CEeJRdSg5jukoG244ek'])\n    {\n        $this->doFetch($search, $options);\n    }\n\n    /**\n     * @param $search\n     * @param array $options\n     * @throws \\Exception\n     */\n    protected function doFetch($search, array $options): void\n    {\n        if (empty($search)) {\n            $this->startBrowser('http://xkcd.com');\n        } elseif (is_numeric($search)) {\n            $this->startBrowser('http://xkcd.com/' . $search);\n        } elseif ($search == 'random') {\n            $xkcd_response = @json_decode(file_get_contents('http://xkcd.com/info.0.json'));\n            if (!empty($xkcd_response->num)) {\n                $this->startBrowser('http://xkcd.com/' . rand(1, $xkcd_response->num));\n            }\n        } else {\n            // This uses an API key with a limited number of searches per.\n            $search_response = @json_decode(file_get_contents('https://www.googleapis.com/customsearch/v1?key=' . $options['google-custom-search-api-key'] . '&cx=012652707207066138651:zudjtuwe28q&q=' . $search));\n            if (!empty($search_response->items)) {\n                foreach ($search_response->items as $item) {\n                    $this->startBrowser($item->link);\n                }\n            } else {\n                throw new \\Exception(dt('The search failed or produced no results.'));\n            }\n        }\n    }\n}\n
    "},{"location":"examples/example.drush.yml/","title":"drush.yml","text":"
    #\n# A minimalist Drush config file.\n# See https://www.drush.org/latest/using-drush-configuration/ for lots more documentation.\n#\n\n# Preflight configuration.\ndrush:\ninclude:\n- '${env.HOME}/.drush/commands'\n- /usr/share/drush/commands\npaths:\nconfig:\n# Load additional config files. Is silently skipped if not found. Filename must be drush.yml\n- ${env.HOME}/.drush/config/drush.yml\nalias-path:\n- '${env.HOME}/.drush/sites'\n- /etc/drush/sites\n\n# Global options.\noptions:\n# Specify the base_url that should be used when generating links.\n# uri: 'http://example.com/subdir'\n\n# Command-specific options.\ncommand:\nsql:\ndump:\noptions:\n# Uncomment to omit cache and similar tables (including during a sql:sync).\n#       structure-tables-key: common\n\n# Non-options.\nssh:\n# Specify options to pass to ssh.  The default is to prohibit\n# password authentication, and is included here, so you may add additional\n# parameters without losing the default configuration.\noptions: '-o PasswordAuthentication=no'\n# This string is valid for Bash shell. Override in case you need something different. See https://github.com/drush-ops/drush/issues/3816.\npipefail: 'set -o pipefail; '\n
    "},{"location":"examples/example.prompt.sh/","title":"prompt.sh","text":"
    # -*- mode: shell-script; mode: flyspell-prog; ispell-local-dictionary: \"american\" -*-\n#\n# Example PS1 prompt.\n#\n# Note: This file does a lot, and is designed for Bash. If you want to show the\n# currently set alias in your prompt, use the first 2 values below as an example.\n\n# This section can be used for the POWERLEVEL9K theme for Oh My Zsh.\n#FILE=\"${TMPDIR:-/tmp/}/drush-env-${USER}/drush-drupal-site-$$\"\n#POWERLEVEL9K_CUSTOM_DRUSH=\"[ -r $FILE ] && cat $FILE\"\n#POWERLEVEL9K_CUSTOM_DRUSH_BACKGROUND=\"green\"\n#POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir vcs custom_drush)\n\n#\n# Note that your Bash session must already have the __git_ps1 function available.\n# Typically this is provided by git-prompt.sh, see instructions for downloading\n# and including this file here:\n# https://github.com/git/git/blob/10.x/contrib/completion/git-prompt.sh\n#\n# Features:\n#\n# Displays Git repository and Drush alias status in your prompt.\n\n__drush_ps1() {\nf=\"${TMPDIR:-/tmp/}/drush-env-${USER}/drush-drupal-site-$$\"\nif [ -f $f ]\nthen\n__DRUPAL_SITE=$(cat \"$f\")\nelse\n__DRUPAL_SITE=\"$DRUPAL_SITE\"\nfi\n\n# Set DRUSH_PS1_SHOWCOLORHINTS to a non-empty value and define a\n# __drush_ps1_colorize_alias() function for color hints in your Drush PS1\n# prompt. See example.prompt.sh for an example implementation.\nif [ -n \"${__DRUPAL_SITE-}\" ] && [ -n \"${DRUSH_PS1_SHOWCOLORHINTS-}\" ]; then\n__drush_ps1_colorize_alias\n  fi\n\n[[ -n \"$__DRUPAL_SITE\" ]] && printf \"${1:- (%s)}\" \"$__DRUPAL_SITE\"\n}\n\nif [ -n \"$(type -t __git_ps1)\" ] && [ \"$(type -t __git_ps1)\" = function ] && [ \"$(type -t __drush_ps1)\" ] && [ \"$(type -t __drush_ps1)\" = function ]; then\n\n# This line enables color hints in your Drush prompt. Modify the below\n# __drush_ps1_colorize_alias() to customize your color theme.\nDRUSH_PS1_SHOWCOLORHINTS=true\n\n# Git offers various prompt customization options as well as seen in\n# https://github.com/git/git/blob/10.x/contrib/completion/git-prompt.sh.\n# Adjust the following lines to enable the corresponding features:\n#\nGIT_PS1_SHOWDIRTYSTATE=true\nGIT_PS1_SHOWUPSTREAM=auto\n  # GIT_PS1_SHOWSTASHSTATE=true\n# GIT_PS1_SHOWUNTRACKEDFILES=true\nGIT_PS1_SHOWCOLORHINTS=true\n\n# The following line sets your bash prompt according to this example:\n#\n#   username@hostname ~/working-directory (git-branch)[@drush-alias] $\n#\n# See http://ss64.com/bash/syntax-prompt.html for customization options.\nexport PROMPT_COMMAND='__git_ps1 \"\\u@\\h \\w\" \"$(__drush_ps1 \"[%s]\") \\\\\\$ \"'\n\n# PROMPT_COMMAND is used in the example above rather than PS1 because neither\n# Git nor Drush color hints are compatible with PS1. If you don't want color\n# hints, however, and prefer to use PS1, you can still do so by commenting out\n# the PROMPT_COMMAND line above and uncommenting the PS1 line below:\n#\n# export PS1='\\u@\\h \\w$(__git_ps1 \" (%s)\")$(__drush_ps1 \"[%s]\")\\$ '\n\n__drush_ps1_colorize_alias() {\nif [[ -n ${ZSH_VERSION-} ]]; then\nlocal COLOR_BLUE='%F{blue}'\nlocal COLOR_CYAN='%F{cyan}'\nlocal COLOR_GREEN='%F{green}'\nlocal COLOR_MAGENTA='%F{magenta}'\nlocal COLOR_RED='%F{red}'\nlocal COLOR_WHITE='%F{white}'\nlocal COLOR_YELLOW='%F{yellow}'\nlocal COLOR_NONE='%f'\nelse\n# Using \\[ and \\] around colors is necessary to prevent issues with\n# command line editing/browsing/completion.\nlocal COLOR_BLUE='\\[\\e[94m\\]'\nlocal COLOR_CYAN='\\[\\e[36m\\]'\nlocal COLOR_GREEN='\\[\\e[32m\\]'\nlocal COLOR_MAGENTA='\\[\\e[35m\\]'\nlocal COLOR_RED='\\[\\e[91m\\]'\nlocal COLOR_WHITE='\\[\\e[37m\\]'\nlocal COLOR_YELLOW='\\[\\e[93m\\]'\nlocal COLOR_NONE='\\[\\e[0m\\]'\nfi\n\n# Customize your color theme below.\ncase \"$__DRUPAL_SITE\" in\n*.live|*.prod) local ENV_COLOR=\"$COLOR_RED\" ;;\n*.stage|*.test) local ENV_COLOR=\"$COLOR_YELLOW\" ;;\n*.local) local ENV_COLOR=\"$COLOR_GREEN\" ;;\n*) local ENV_COLOR=\"$COLOR_BLUE\" ;;\nesac\n\n__DRUPAL_SITE=\"${ENV_COLOR}${__DRUPAL_SITE}${COLOR_NONE}\"\n}\n\nfi\n
    "},{"location":"examples/example.site.yml/","title":"site.yml","text":"
    #\n# A minimalist Drush site alias file.\n# See https://www.drush.org/latest/site-aliases/ for lots more documentation.\n#\n# File: self.site.yml\nlive:\nhost: www.domain.com\nuser: www-admin\nroot: /other/path/to/drupal\nuri: http://www.example.com\nssh:\noptions: '-p 100'\npaths:\ndrush-script: '/path/to/drush'\nenv-vars:\nPATH: /bin:/usr/bin:/home/www-admin/.composer/vendor/bin\nDRUPAL_ENV: live\ncommand:\nsite:\ninstall:\noptions:\nadmin-password: 'secret-secret'\nstage:\nhost: stage.domain.com\nuser: www-admin\nroot: /other/path/to/drupal\nuri: http://stage.example.com\n
    "},{"location":"examples/git-bisect.example.sh/","title":"git-bisect.sh","text":"
    #!/usr/bin/env sh\n\n#\n# Git bisect is a helpful way to discover which commit an error\n# occurred in.  This example file gives simple instructions for\n# using git bisect with Drush to quickly find erroneous commits\n# in Drush commands or Drupal modules, presuming that you can\n# trigger the error condition via Drush (e.g. using `drush php-eval`).\n#\n# Follow these simple steps:\n#\n#   $ git bisect start\n#   $ git bisect bad              # Tell git that the current commit does not work\n#   $ git bisect good bcadd5a     # Tell drush that the commithash 12345 worked fine\n#   $ git bisect run mytestscript.sh\n#\n# 'git bisect run' will continue to call 'git bisect good' and 'git bisect bad',\n# based on whether the script's exit code was 0 or 1, respectively.\n#\n# Replace 'mytestscript.sh' in the example above with a custom script that you\n# write yourself.  Use the example script at the end of this document as a\n# guide.  Replace the example command with one that calls the Drush command\n# that you would like to test, and replace the 'grep' string with a value\n# that appears when the error exists in the commit, but does not appear when\n# commit is okay.\n#\n# If you are using Drush to test Drupal or an external Drush module, use:\n#\n#   $ git bisect run drush mycommand --strict=2\n#\n# This presumes that there is one or more '[warning]' or '[error]'\n# messages emitted when there is a problem, and no warnings or errors\n# when the commit is okay.  Omit '--strict=2' to ignore warnings, and\n# signal failure only when 'error' messages are emitted.\n#\n# If you need to test for an error condition explicitly, to find errors\n# that do not return any warning or error log messages on their own, you\n# can use the Drush php-eval command to force an error when `myfunction()`\n# returns FALSE. Replace 'myfunction()' with the name of an appropriate\n# function in your module that can be used to detect the error condition\n# you are looking for.\n#\n#   $ git bisect run drush ev 'if(!myfunction()) { return drush_set_error(\"ERR\"); }'\n#\ndrush mycommand --myoption 2>&1 | grep -q 'string that indicates there was a problem'\nif [ $? == 0 ] ; then\nexit 1\nelse\nexit 0\nfi\n
    "},{"location":"examples/helloworld.script/","title":"Helloworld.script","text":"
    <?php\n\n//\n// This example demonstrates how to write a drush\n// script. These scripts are run with the php:script command.\n//\nuse Drush\\Drush;\n\n$this->output()->writeln(\"Hello world!\");\n$this->output()->writeln(\"The extra options/arguments to this command were:\");\n$this->output()->writeln(print_r($extra, true));\n\n//\n// We can check which site was bootstrapped via\n// the '@self' alias, which is defined only if\n// there is a bootstrapped site.\n//\n$self = Drush::aliasManager()->getSelf();;\nif (!$self->hasRoot()) {\n  $this->output()->writeln('No bootstrapped site.');\n}\nelse {\n  $this->output()->writeln('The following site is bootstrapped:');\n  $this->output()->writeln(print_r($self->legacyRecord(), true));\n}\n
    "},{"location":"generators/all/","title":"All generators","text":"

    Tip

    Press the / key to Search for a command. Or use your browser's Find in Page feature.

    "},{"location":"generators/composer/","title":"composer","text":"

    Generates a composer.json file

    "},{"location":"generators/composer/#examples","title":"Examples","text":""},{"location":"generators/composer/#options","title":"Options","text":""},{"location":"generators/composer/#topics","title":"Topics","text":""},{"location":"generators/composer/#aliases","title":"Aliases","text":""},{"location":"generators/controller/","title":"controller","text":"

    Generates a controller

    "},{"location":"generators/controller/#examples","title":"Examples","text":""},{"location":"generators/controller/#options","title":"Options","text":""},{"location":"generators/controller/#topics","title":"Topics","text":""},{"location":"generators/drush_alias-file/","title":"drush:alias-file","text":"

    Generates a Drush site alias file.

    "},{"location":"generators/drush_alias-file/#examples","title":"Examples","text":""},{"location":"generators/drush_alias-file/#options","title":"Options","text":""},{"location":"generators/drush_alias-file/#topics","title":"Topics","text":""},{"location":"generators/drush_alias-file/#aliases","title":"Aliases","text":""},{"location":"generators/drush_command-file/","title":"drush:command-file","text":"

    Generates a Drush command file.

    "},{"location":"generators/drush_command-file/#examples","title":"Examples","text":""},{"location":"generators/drush_command-file/#options","title":"Options","text":""},{"location":"generators/drush_command-file/#topics","title":"Topics","text":""},{"location":"generators/drush_command-file/#aliases","title":"Aliases","text":""},{"location":"generators/drush_generator/","title":"drush:generator","text":"

    Generates Drush generator

    "},{"location":"generators/drush_generator/#examples","title":"Examples","text":""},{"location":"generators/drush_generator/#options","title":"Options","text":""},{"location":"generators/drush_generator/#topics","title":"Topics","text":""},{"location":"generators/drush_generator/#aliases","title":"Aliases","text":""},{"location":"generators/drush_symfony-command/","title":"drush:symfony-command","text":"

    Generates Symfony console command

    "},{"location":"generators/drush_symfony-command/#examples","title":"Examples","text":""},{"location":"generators/drush_symfony-command/#options","title":"Options","text":""},{"location":"generators/drush_symfony-command/#topics","title":"Topics","text":""},{"location":"generators/drush_symfony-command/#aliases","title":"Aliases","text":""},{"location":"generators/entity_bundle-class/","title":"entity:bundle-class","text":"

    11.0+

    Generate a bundle class for a content entity.

    "},{"location":"generators/entity_bundle-class/#examples","title":"Examples","text":""},{"location":"generators/entity_bundle-class/#options","title":"Options","text":""},{"location":"generators/entity_bundle-class/#topics","title":"Topics","text":""},{"location":"generators/entity_bundle-class/#aliases","title":"Aliases","text":""},{"location":"generators/entity_configuration/","title":"entity:configuration","text":"

    Generates configuration entity

    "},{"location":"generators/entity_configuration/#examples","title":"Examples","text":""},{"location":"generators/entity_configuration/#options","title":"Options","text":""},{"location":"generators/entity_configuration/#topics","title":"Topics","text":""},{"location":"generators/entity_configuration/#aliases","title":"Aliases","text":""},{"location":"generators/entity_content/","title":"entity:content","text":"

    Generates content entity

    "},{"location":"generators/entity_content/#examples","title":"Examples","text":""},{"location":"generators/entity_content/#options","title":"Options","text":""},{"location":"generators/entity_content/#topics","title":"Topics","text":""},{"location":"generators/entity_content/#aliases","title":"Aliases","text":""},{"location":"generators/field/","title":"field","text":"

    Generates a field

    "},{"location":"generators/field/#examples","title":"Examples","text":""},{"location":"generators/field/#options","title":"Options","text":""},{"location":"generators/field/#topics","title":"Topics","text":""},{"location":"generators/form_config/","title":"form:config","text":"

    Generates a configuration form

    "},{"location":"generators/form_config/#examples","title":"Examples","text":""},{"location":"generators/form_config/#options","title":"Options","text":""},{"location":"generators/form_config/#topics","title":"Topics","text":""},{"location":"generators/form_config/#aliases","title":"Aliases","text":""},{"location":"generators/form_confirm/","title":"form:confirm","text":"

    Generates a confirmation form

    "},{"location":"generators/form_confirm/#examples","title":"Examples","text":""},{"location":"generators/form_confirm/#options","title":"Options","text":""},{"location":"generators/form_confirm/#topics","title":"Topics","text":""},{"location":"generators/form_confirm/#aliases","title":"Aliases","text":""},{"location":"generators/form_simple/","title":"form:simple","text":"

    Generates simple form

    "},{"location":"generators/form_simple/#examples","title":"Examples","text":""},{"location":"generators/form_simple/#options","title":"Options","text":""},{"location":"generators/form_simple/#topics","title":"Topics","text":""},{"location":"generators/form_simple/#aliases","title":"Aliases","text":""},{"location":"generators/hook/","title":"hook","text":"

    Generates a hook

    "},{"location":"generators/hook/#examples","title":"Examples","text":""},{"location":"generators/hook/#options","title":"Options","text":""},{"location":"generators/hook/#topics","title":"Topics","text":""},{"location":"generators/install-file/","title":"install-file","text":"

    Generates an install file

    "},{"location":"generators/install-file/#examples","title":"Examples","text":""},{"location":"generators/install-file/#options","title":"Options","text":""},{"location":"generators/install-file/#topics","title":"Topics","text":""},{"location":"generators/javascript/","title":"javascript","text":"

    Generates Drupal JavaScript file

    "},{"location":"generators/javascript/#examples","title":"Examples","text":""},{"location":"generators/javascript/#options","title":"Options","text":""},{"location":"generators/javascript/#topics","title":"Topics","text":""},{"location":"generators/layout/","title":"layout","text":"

    Generates a layout

    "},{"location":"generators/layout/#examples","title":"Examples","text":""},{"location":"generators/layout/#options","title":"Options","text":""},{"location":"generators/layout/#topics","title":"Topics","text":""},{"location":"generators/misc_apache-virtual-host/","title":"misc:apache-virtual-host","text":"

    Generates an Apache site configuration file

    "},{"location":"generators/misc_apache-virtual-host/#examples","title":"Examples","text":""},{"location":"generators/misc_apache-virtual-host/#options","title":"Options","text":""},{"location":"generators/misc_apache-virtual-host/#topics","title":"Topics","text":""},{"location":"generators/misc_apache-virtual-host/#aliases","title":"Aliases","text":""},{"location":"generators/misc_nginx-virtual-host/","title":"misc:nginx-virtual-host","text":"

    Generates an Nginx site configuration file

    "},{"location":"generators/misc_nginx-virtual-host/#examples","title":"Examples","text":""},{"location":"generators/misc_nginx-virtual-host/#options","title":"Options","text":""},{"location":"generators/misc_nginx-virtual-host/#topics","title":"Topics","text":""},{"location":"generators/misc_nginx-virtual-host/#aliases","title":"Aliases","text":""},{"location":"generators/module/","title":"module","text":"

    Generates Drupal module

    "},{"location":"generators/module/#examples","title":"Examples","text":""},{"location":"generators/module/#options","title":"Options","text":""},{"location":"generators/module/#topics","title":"Topics","text":""},{"location":"generators/phpstorm-meta/","title":"phpstorm-meta","text":"

    Generates PhpStorm metadata

    "},{"location":"generators/phpstorm-meta/#examples","title":"Examples","text":""},{"location":"generators/phpstorm-meta/#options","title":"Options","text":""},{"location":"generators/phpstorm-meta/#topics","title":"Topics","text":""},{"location":"generators/plugin_action/","title":"plugin:action","text":"

    Generates action plugin

    "},{"location":"generators/plugin_action/#examples","title":"Examples","text":""},{"location":"generators/plugin_action/#options","title":"Options","text":""},{"location":"generators/plugin_action/#topics","title":"Topics","text":""},{"location":"generators/plugin_action/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_block/","title":"plugin:block","text":"

    Generates block plugin

    "},{"location":"generators/plugin_block/#examples","title":"Examples","text":""},{"location":"generators/plugin_block/#options","title":"Options","text":""},{"location":"generators/plugin_block/#topics","title":"Topics","text":""},{"location":"generators/plugin_block/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_ckeditor/","title":"plugin:ckeditor","text":"

    Generates CKEditor plugin

    "},{"location":"generators/plugin_ckeditor/#examples","title":"Examples","text":""},{"location":"generators/plugin_ckeditor/#options","title":"Options","text":""},{"location":"generators/plugin_ckeditor/#topics","title":"Topics","text":""},{"location":"generators/plugin_ckeditor/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_condition/","title":"plugin:condition","text":"

    Generates condition plugin

    "},{"location":"generators/plugin_condition/#examples","title":"Examples","text":""},{"location":"generators/plugin_condition/#options","title":"Options","text":""},{"location":"generators/plugin_condition/#topics","title":"Topics","text":""},{"location":"generators/plugin_condition/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_constraint/","title":"plugin:constraint","text":"

    Generates constraint plugin

    "},{"location":"generators/plugin_constraint/#examples","title":"Examples","text":""},{"location":"generators/plugin_constraint/#options","title":"Options","text":""},{"location":"generators/plugin_constraint/#topics","title":"Topics","text":""},{"location":"generators/plugin_constraint/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_entity-reference-selection/","title":"plugin:entity-reference-selection","text":"

    Generates entity reference selection plugin

    "},{"location":"generators/plugin_entity-reference-selection/#examples","title":"Examples","text":""},{"location":"generators/plugin_entity-reference-selection/#options","title":"Options","text":""},{"location":"generators/plugin_entity-reference-selection/#topics","title":"Topics","text":""},{"location":"generators/plugin_entity-reference-selection/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_field_formatter/","title":"plugin:field:formatter","text":"

    Generates field formatter plugin

    "},{"location":"generators/plugin_field_formatter/#examples","title":"Examples","text":""},{"location":"generators/plugin_field_formatter/#options","title":"Options","text":""},{"location":"generators/plugin_field_formatter/#topics","title":"Topics","text":""},{"location":"generators/plugin_field_formatter/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_field_type/","title":"plugin:field:type","text":"

    Generates field type plugin

    "},{"location":"generators/plugin_field_type/#examples","title":"Examples","text":""},{"location":"generators/plugin_field_type/#options","title":"Options","text":""},{"location":"generators/plugin_field_type/#topics","title":"Topics","text":""},{"location":"generators/plugin_field_type/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_field_widget/","title":"plugin:field:widget","text":"

    Generates field widget plugin

    "},{"location":"generators/plugin_field_widget/#examples","title":"Examples","text":""},{"location":"generators/plugin_field_widget/#options","title":"Options","text":""},{"location":"generators/plugin_field_widget/#topics","title":"Topics","text":""},{"location":"generators/plugin_field_widget/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_filter/","title":"plugin:filter","text":"

    Generates filter plugin

    "},{"location":"generators/plugin_filter/#examples","title":"Examples","text":""},{"location":"generators/plugin_filter/#options","title":"Options","text":""},{"location":"generators/plugin_filter/#topics","title":"Topics","text":""},{"location":"generators/plugin_filter/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_manager/","title":"plugin:manager","text":"

    Generates plugin manager

    "},{"location":"generators/plugin_manager/#examples","title":"Examples","text":""},{"location":"generators/plugin_manager/#options","title":"Options","text":""},{"location":"generators/plugin_manager/#topics","title":"Topics","text":""},{"location":"generators/plugin_menu-link/","title":"plugin:menu-link","text":"

    Generates menu-link plugin

    "},{"location":"generators/plugin_menu-link/#examples","title":"Examples","text":""},{"location":"generators/plugin_menu-link/#options","title":"Options","text":""},{"location":"generators/plugin_menu-link/#topics","title":"Topics","text":""},{"location":"generators/plugin_menu-link/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_migrate_destination/","title":"plugin:migrate:destination","text":"

    Generates migrate destination plugin

    "},{"location":"generators/plugin_migrate_destination/#examples","title":"Examples","text":""},{"location":"generators/plugin_migrate_destination/#options","title":"Options","text":""},{"location":"generators/plugin_migrate_destination/#topics","title":"Topics","text":""},{"location":"generators/plugin_migrate_destination/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_migrate_process/","title":"plugin:migrate:process","text":"

    Generates migrate process plugin

    "},{"location":"generators/plugin_migrate_process/#examples","title":"Examples","text":""},{"location":"generators/plugin_migrate_process/#options","title":"Options","text":""},{"location":"generators/plugin_migrate_process/#topics","title":"Topics","text":""},{"location":"generators/plugin_migrate_process/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_migrate_source/","title":"plugin:migrate:source","text":"

    Generates migrate source plugin

    "},{"location":"generators/plugin_migrate_source/#examples","title":"Examples","text":""},{"location":"generators/plugin_migrate_source/#options","title":"Options","text":""},{"location":"generators/plugin_migrate_source/#topics","title":"Topics","text":""},{"location":"generators/plugin_migrate_source/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_queue-worker/","title":"plugin:queue-worker","text":"

    Generates queue worker plugin

    "},{"location":"generators/plugin_queue-worker/#examples","title":"Examples","text":""},{"location":"generators/plugin_queue-worker/#options","title":"Options","text":""},{"location":"generators/plugin_queue-worker/#topics","title":"Topics","text":""},{"location":"generators/plugin_queue-worker/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_rest-resource/","title":"plugin:rest-resource","text":"

    Generates rest resource plugin

    "},{"location":"generators/plugin_rest-resource/#examples","title":"Examples","text":""},{"location":"generators/plugin_rest-resource/#options","title":"Options","text":""},{"location":"generators/plugin_rest-resource/#topics","title":"Topics","text":""},{"location":"generators/plugin_rest-resource/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_views_argument-default/","title":"plugin:views:argument-default","text":"

    Generates views default argument plugin

    "},{"location":"generators/plugin_views_argument-default/#examples","title":"Examples","text":""},{"location":"generators/plugin_views_argument-default/#options","title":"Options","text":""},{"location":"generators/plugin_views_argument-default/#topics","title":"Topics","text":""},{"location":"generators/plugin_views_argument-default/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_views_field/","title":"plugin:views:field","text":"

    Generates views field plugin

    "},{"location":"generators/plugin_views_field/#examples","title":"Examples","text":""},{"location":"generators/plugin_views_field/#options","title":"Options","text":""},{"location":"generators/plugin_views_field/#topics","title":"Topics","text":""},{"location":"generators/plugin_views_field/#aliases","title":"Aliases","text":""},{"location":"generators/plugin_views_style/","title":"plugin:views:style","text":"

    Generates views style plugin

    "},{"location":"generators/plugin_views_style/#examples","title":"Examples","text":""},{"location":"generators/plugin_views_style/#options","title":"Options","text":""},{"location":"generators/plugin_views_style/#topics","title":"Topics","text":""},{"location":"generators/plugin_views_style/#aliases","title":"Aliases","text":""},{"location":"generators/readme/","title":"readme","text":"

    Generates README file

    "},{"location":"generators/readme/#examples","title":"Examples","text":""},{"location":"generators/readme/#options","title":"Options","text":""},{"location":"generators/readme/#topics","title":"Topics","text":""},{"location":"generators/render-element/","title":"render-element","text":"

    Generates Drupal render element

    "},{"location":"generators/render-element/#examples","title":"Examples","text":""},{"location":"generators/render-element/#options","title":"Options","text":""},{"location":"generators/render-element/#topics","title":"Topics","text":""},{"location":"generators/service-provider/","title":"service-provider","text":"

    Generates a service provider

    "},{"location":"generators/service-provider/#examples","title":"Examples","text":""},{"location":"generators/service-provider/#options","title":"Options","text":""},{"location":"generators/service-provider/#topics","title":"Topics","text":""},{"location":"generators/service_access-checker/","title":"service:access-checker","text":"

    Generates an access checker service

    "},{"location":"generators/service_access-checker/#examples","title":"Examples","text":""},{"location":"generators/service_access-checker/#options","title":"Options","text":""},{"location":"generators/service_access-checker/#topics","title":"Topics","text":""},{"location":"generators/service_access-checker/#aliases","title":"Aliases","text":""},{"location":"generators/service_breadcrumb-builder/","title":"service:breadcrumb-builder","text":"

    Generates a breadcrumb builder service

    "},{"location":"generators/service_breadcrumb-builder/#examples","title":"Examples","text":""},{"location":"generators/service_breadcrumb-builder/#options","title":"Options","text":""},{"location":"generators/service_breadcrumb-builder/#topics","title":"Topics","text":""},{"location":"generators/service_breadcrumb-builder/#aliases","title":"Aliases","text":""},{"location":"generators/service_cache-context/","title":"service:cache-context","text":"

    Generates a cache context service

    "},{"location":"generators/service_cache-context/#examples","title":"Examples","text":""},{"location":"generators/service_cache-context/#options","title":"Options","text":""},{"location":"generators/service_cache-context/#topics","title":"Topics","text":""},{"location":"generators/service_cache-context/#aliases","title":"Aliases","text":""},{"location":"generators/service_custom/","title":"service:custom","text":"

    Generates a custom Drupal service

    "},{"location":"generators/service_custom/#examples","title":"Examples","text":""},{"location":"generators/service_custom/#options","title":"Options","text":""},{"location":"generators/service_custom/#topics","title":"Topics","text":""},{"location":"generators/service_custom/#aliases","title":"Aliases","text":""},{"location":"generators/service_event-subscriber/","title":"service:event-subscriber","text":"

    Generates an event subscriber

    "},{"location":"generators/service_event-subscriber/#examples","title":"Examples","text":""},{"location":"generators/service_event-subscriber/#options","title":"Options","text":""},{"location":"generators/service_event-subscriber/#topics","title":"Topics","text":""},{"location":"generators/service_event-subscriber/#aliases","title":"Aliases","text":""},{"location":"generators/service_logger/","title":"service:logger","text":"

    Generates a logger service

    "},{"location":"generators/service_logger/#examples","title":"Examples","text":""},{"location":"generators/service_logger/#options","title":"Options","text":""},{"location":"generators/service_logger/#topics","title":"Topics","text":""},{"location":"generators/service_logger/#aliases","title":"Aliases","text":""},{"location":"generators/service_middleware/","title":"service:middleware","text":"

    Generates a middleware

    "},{"location":"generators/service_middleware/#examples","title":"Examples","text":""},{"location":"generators/service_middleware/#options","title":"Options","text":""},{"location":"generators/service_middleware/#topics","title":"Topics","text":""},{"location":"generators/service_middleware/#aliases","title":"Aliases","text":""},{"location":"generators/service_param-converter/","title":"service:param-converter","text":"

    Generates a param converter service

    "},{"location":"generators/service_param-converter/#examples","title":"Examples","text":""},{"location":"generators/service_param-converter/#options","title":"Options","text":""},{"location":"generators/service_param-converter/#topics","title":"Topics","text":""},{"location":"generators/service_param-converter/#aliases","title":"Aliases","text":""},{"location":"generators/service_path-processor/","title":"service:path-processor","text":"

    Generates a path processor service

    "},{"location":"generators/service_path-processor/#examples","title":"Examples","text":""},{"location":"generators/service_path-processor/#options","title":"Options","text":""},{"location":"generators/service_path-processor/#topics","title":"Topics","text":""},{"location":"generators/service_path-processor/#aliases","title":"Aliases","text":""},{"location":"generators/service_request-policy/","title":"service:request-policy","text":"

    Generates a request policy service

    "},{"location":"generators/service_request-policy/#examples","title":"Examples","text":""},{"location":"generators/service_request-policy/#options","title":"Options","text":""},{"location":"generators/service_request-policy/#topics","title":"Topics","text":""},{"location":"generators/service_request-policy/#aliases","title":"Aliases","text":""},{"location":"generators/service_response-policy/","title":"service:response-policy","text":"

    Generates a response policy service

    "},{"location":"generators/service_response-policy/#examples","title":"Examples","text":""},{"location":"generators/service_response-policy/#options","title":"Options","text":""},{"location":"generators/service_response-policy/#topics","title":"Topics","text":""},{"location":"generators/service_response-policy/#aliases","title":"Aliases","text":""},{"location":"generators/service_route-subscriber/","title":"service:route-subscriber","text":"

    Generates a route subscriber

    "},{"location":"generators/service_route-subscriber/#examples","title":"Examples","text":""},{"location":"generators/service_route-subscriber/#options","title":"Options","text":""},{"location":"generators/service_route-subscriber/#topics","title":"Topics","text":""},{"location":"generators/service_route-subscriber/#aliases","title":"Aliases","text":""},{"location":"generators/service_theme-negotiator/","title":"service:theme-negotiator","text":"

    Generates a theme negotiator

    "},{"location":"generators/service_theme-negotiator/#examples","title":"Examples","text":""},{"location":"generators/service_theme-negotiator/#options","title":"Options","text":""},{"location":"generators/service_theme-negotiator/#topics","title":"Topics","text":""},{"location":"generators/service_theme-negotiator/#aliases","title":"Aliases","text":""},{"location":"generators/service_twig-extension/","title":"service:twig-extension","text":"

    Generates Twig extension service

    "},{"location":"generators/service_twig-extension/#examples","title":"Examples","text":""},{"location":"generators/service_twig-extension/#options","title":"Options","text":""},{"location":"generators/service_twig-extension/#topics","title":"Topics","text":""},{"location":"generators/service_twig-extension/#aliases","title":"Aliases","text":""},{"location":"generators/service_uninstall-validator/","title":"service:uninstall-validator","text":"

    Generates a uninstall validator service

    "},{"location":"generators/service_uninstall-validator/#examples","title":"Examples","text":""},{"location":"generators/service_uninstall-validator/#options","title":"Options","text":""},{"location":"generators/service_uninstall-validator/#topics","title":"Topics","text":""},{"location":"generators/service_uninstall-validator/#aliases","title":"Aliases","text":""},{"location":"generators/single-directory-component/","title":"single-directory-component","text":"

    Generates Drupal SDC theme component

    "},{"location":"generators/single-directory-component/#examples","title":"Examples","text":""},{"location":"generators/single-directory-component/#options","title":"Options","text":""},{"location":"generators/single-directory-component/#topics","title":"Topics","text":""},{"location":"generators/single-directory-component/#aliases","title":"Aliases","text":""},{"location":"generators/test_browser/","title":"test:browser","text":"

    Generates a browser based test

    "},{"location":"generators/test_browser/#examples","title":"Examples","text":""},{"location":"generators/test_browser/#options","title":"Options","text":""},{"location":"generators/test_browser/#topics","title":"Topics","text":""},{"location":"generators/test_browser/#aliases","title":"Aliases","text":""},{"location":"generators/test_kernel/","title":"test:kernel","text":"

    Generates a kernel based test

    "},{"location":"generators/test_kernel/#examples","title":"Examples","text":""},{"location":"generators/test_kernel/#options","title":"Options","text":""},{"location":"generators/test_kernel/#topics","title":"Topics","text":""},{"location":"generators/test_kernel/#aliases","title":"Aliases","text":""},{"location":"generators/test_nightwatch/","title":"test:nightwatch","text":"

    Generates a nightwatch test

    "},{"location":"generators/test_nightwatch/#examples","title":"Examples","text":""},{"location":"generators/test_nightwatch/#options","title":"Options","text":""},{"location":"generators/test_nightwatch/#topics","title":"Topics","text":""},{"location":"generators/test_nightwatch/#aliases","title":"Aliases","text":""},{"location":"generators/test_unit/","title":"test:unit","text":"

    Generates a unit test

    "},{"location":"generators/test_unit/#examples","title":"Examples","text":""},{"location":"generators/test_unit/#options","title":"Options","text":""},{"location":"generators/test_unit/#topics","title":"Topics","text":""},{"location":"generators/test_unit/#aliases","title":"Aliases","text":""},{"location":"generators/test_webdriver/","title":"test:webdriver","text":"

    Generates a test that supports JavaScript

    "},{"location":"generators/test_webdriver/#examples","title":"Examples","text":""},{"location":"generators/test_webdriver/#options","title":"Options","text":""},{"location":"generators/test_webdriver/#topics","title":"Topics","text":""},{"location":"generators/test_webdriver/#aliases","title":"Aliases","text":""},{"location":"generators/theme/","title":"theme","text":"

    Generates Drupal theme

    "},{"location":"generators/theme/#examples","title":"Examples","text":""},{"location":"generators/theme/#options","title":"Options","text":""},{"location":"generators/theme/#topics","title":"Topics","text":""},{"location":"generators/theme_settings/","title":"theme:settings","text":"

    Generates Drupal theme-settings.php file

    "},{"location":"generators/theme_settings/#examples","title":"Examples","text":""},{"location":"generators/theme_settings/#options","title":"Options","text":""},{"location":"generators/theme_settings/#topics","title":"Topics","text":""},{"location":"generators/yml_breakpoints/","title":"yml:breakpoints","text":"

    Generates a breakpoints yml file

    "},{"location":"generators/yml_breakpoints/#examples","title":"Examples","text":""},{"location":"generators/yml_breakpoints/#options","title":"Options","text":""},{"location":"generators/yml_breakpoints/#topics","title":"Topics","text":""},{"location":"generators/yml_breakpoints/#aliases","title":"Aliases","text":""},{"location":"generators/yml_links_action/","title":"yml:links:action","text":"

    Generates a links.action yml file

    "},{"location":"generators/yml_links_action/#examples","title":"Examples","text":""},{"location":"generators/yml_links_action/#options","title":"Options","text":""},{"location":"generators/yml_links_action/#topics","title":"Topics","text":""},{"location":"generators/yml_links_action/#aliases","title":"Aliases","text":""},{"location":"generators/yml_links_contextual/","title":"yml:links:contextual","text":"

    Generates links.contextual yml file

    "},{"location":"generators/yml_links_contextual/#examples","title":"Examples","text":""},{"location":"generators/yml_links_contextual/#options","title":"Options","text":""},{"location":"generators/yml_links_contextual/#topics","title":"Topics","text":""},{"location":"generators/yml_links_contextual/#aliases","title":"Aliases","text":""},{"location":"generators/yml_links_menu/","title":"yml:links:menu","text":"

    Generates a links.menu yml file

    "},{"location":"generators/yml_links_menu/#examples","title":"Examples","text":""},{"location":"generators/yml_links_menu/#options","title":"Options","text":""},{"location":"generators/yml_links_menu/#topics","title":"Topics","text":""},{"location":"generators/yml_links_menu/#aliases","title":"Aliases","text":""},{"location":"generators/yml_links_task/","title":"yml:links:task","text":"

    Generates a links.task yml file

    "},{"location":"generators/yml_links_task/#examples","title":"Examples","text":""},{"location":"generators/yml_links_task/#options","title":"Options","text":""},{"location":"generators/yml_links_task/#topics","title":"Topics","text":""},{"location":"generators/yml_links_task/#aliases","title":"Aliases","text":""},{"location":"generators/yml_migration/","title":"yml:migration","text":"

    Generates a migration yml file

    "},{"location":"generators/yml_migration/#examples","title":"Examples","text":""},{"location":"generators/yml_migration/#options","title":"Options","text":""},{"location":"generators/yml_migration/#topics","title":"Topics","text":""},{"location":"generators/yml_migration/#aliases","title":"Aliases","text":""},{"location":"generators/yml_module-libraries/","title":"yml:module-libraries","text":"

    Generates module libraries yml file

    "},{"location":"generators/yml_module-libraries/#examples","title":"Examples","text":""},{"location":"generators/yml_module-libraries/#options","title":"Options","text":""},{"location":"generators/yml_module-libraries/#topics","title":"Topics","text":""},{"location":"generators/yml_module-libraries/#aliases","title":"Aliases","text":""},{"location":"generators/yml_permissions/","title":"yml:permissions","text":"

    Generates a permissions yml file

    "},{"location":"generators/yml_permissions/#examples","title":"Examples","text":""},{"location":"generators/yml_permissions/#options","title":"Options","text":""},{"location":"generators/yml_permissions/#topics","title":"Topics","text":""},{"location":"generators/yml_permissions/#aliases","title":"Aliases","text":""},{"location":"generators/yml_routing/","title":"yml:routing","text":"

    Generates a routing yml file

    "},{"location":"generators/yml_routing/#examples","title":"Examples","text":""},{"location":"generators/yml_routing/#options","title":"Options","text":""},{"location":"generators/yml_routing/#topics","title":"Topics","text":""},{"location":"generators/yml_routing/#aliases","title":"Aliases","text":""},{"location":"generators/yml_services/","title":"yml:services","text":"

    Generates a services yml file

    "},{"location":"generators/yml_services/#examples","title":"Examples","text":""},{"location":"generators/yml_services/#options","title":"Options","text":""},{"location":"generators/yml_services/#topics","title":"Topics","text":""},{"location":"generators/yml_services/#aliases","title":"Aliases","text":""},{"location":"generators/yml_theme-libraries/","title":"yml:theme-libraries","text":"

    Generates theme libraries yml file

    "},{"location":"generators/yml_theme-libraries/#examples","title":"Examples","text":""},{"location":"generators/yml_theme-libraries/#options","title":"Options","text":""},{"location":"generators/yml_theme-libraries/#topics","title":"Topics","text":""},{"location":"generators/yml_theme-libraries/#aliases","title":"Aliases","text":""}]} \ No newline at end of file diff --git a/12.x/site-alias-manager/index.html b/12.x/site-alias-manager/index.html index 8f00fde028..06ef9d14f1 100644 --- a/12.x/site-alias-manager/index.html +++ b/12.x/site-alias-manager/index.html @@ -3887,6 +3887,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -3910,6 +3924,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/site-aliases/index.html b/12.x/site-aliases/index.html index db0d1a48c4..3bdae871b8 100644 --- a/12.x/site-aliases/index.html +++ b/12.x/site-aliases/index.html @@ -3981,6 +3981,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -4004,6 +4018,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/sitemap.xml b/12.x/sitemap.xml index 135ead845c..405e4097c3 100644 --- a/12.x/sitemap.xml +++ b/12.x/sitemap.xml @@ -2,1167 +2,1177 @@ https://www.drush.org/latest/latest/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/bootstrap/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/config-exporting/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/cron/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/dependency-injection/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/deploycommand/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/hooks/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/install/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/io/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/migrate/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/output-formats-filters/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/repl/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/site-alias-manager/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/site-aliases/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/usage/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/using-drush-configuration/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/all/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/archive_dump/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/archive_restore/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/browse/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/cache_clear/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/cache_get/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/cache_rebuild/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/cache_set/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/cache_tags/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/completion/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/config_delete/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/config_edit/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/config_export/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/config_get/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/config_import/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/config_pull/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/config_set/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/config_status/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/core_cron/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/core_edit/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/core_requirements/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/core_route/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/core_rsync/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/core_status/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/core_topic/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/deploy/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/deploy_hook-status/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/deploy_hook/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/deploy_mark-complete/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/drupal_directory/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/entity_delete/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/entity_save/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/field_base-info/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/field_base-override-create/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/field_create/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/field_delete/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/field_formatters/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/field_info/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/field_types/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/field_widgets/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/generate/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/help/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/image_derive/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/image_flush/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/jn_get/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/list/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/locale_check/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/locale_clear-status/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/locale_export/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/locale_import-all/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/locale_import/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/locale_update/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/maint_get/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/maint_set/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/maint_status/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/migrate_fields-source/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/migrate_import/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/migrate_messages/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/migrate_reset-status/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/migrate_rollback/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/migrate_status/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/migrate_stop/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/mk_docs/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/php_cli/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/php_eval/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/php_script/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/pm_install/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/pm_list/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/pm_security/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/pm_uninstall/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/queue_delete/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/queue_list/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/queue_run/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/role_create/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/role_delete/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/role_list/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/role_perm_add/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/role_perm_remove/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/runserver/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/site_alias/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/site_install/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/site_set/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/site_ssh/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/sql_cli/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/sql_connect/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/sql_create/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/sql_drop/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/sql_dump/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/sql_query/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/sql_sanitize/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/sql_sync/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/state_delete/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/state_get/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/state_set/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/theme_install/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/theme_uninstall/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/twig_compile/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/twig_debug/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/twig_unused/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/updatedb/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/updatedb_status/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/user_block/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/user_cancel/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/user_create/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/user_information/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/user_login/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/user_password/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/user_role_add/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/user_role_remove/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/user_unblock/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/version/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/views_dev/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/views_disable/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/views_enable/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/views_execute/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/views_list/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/watchdog_delete/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/watchdog_list/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/watchdog_show-one/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/watchdog_show/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/watchdog_tail/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/yaml_get_value/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/yaml_lint/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/yaml_unset_key/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/yaml_update_key/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/commands/yaml_update_value/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/contribute/CONTRIBUTING/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/contribute/unish/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/examples/ArtCommands.php/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/examples/PolicyCommands.php/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/examples/SiteAliasAlterCommands.php/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/examples/SyncViaHttpCommands.php/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/examples/XkcdCommands.php/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/examples/example.drush.yml/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/examples/example.prompt.sh/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/examples/example.site.yml/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/examples/git-bisect.example.sh/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/examples/helloworld.script/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/all/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/composer/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/controller/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/drush_alias-file/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/drush_command-file/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/drush_generator/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/drush_symfony-command/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/entity_bundle-class/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/entity_configuration/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/entity_content/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/field/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/form_config/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/form_confirm/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/form_simple/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/hook/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/install-file/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/javascript/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/layout/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/misc_apache-virtual-host/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/misc_nginx-virtual-host/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/module/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/phpstorm-meta/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_action/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_block/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_ckeditor/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_condition/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_constraint/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_entity-reference-selection/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_field_formatter/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_field_type/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_field_widget/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_filter/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_manager/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_menu-link/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_migrate_destination/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_migrate_process/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_migrate_source/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_queue-worker/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_rest-resource/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_views_argument-default/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_views_field/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/plugin_views_style/ - 2023-09-14 + 2023-09-21 + daily + + + https://www.drush.org/latest/latest/generators/readme/ + 2023-09-21 daily https://www.drush.org/latest/latest/generators/render-element/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service-provider/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service_access-checker/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service_breadcrumb-builder/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service_cache-context/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service_custom/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service_event-subscriber/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service_logger/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service_middleware/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service_param-converter/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service_path-processor/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service_request-policy/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service_response-policy/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service_route-subscriber/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service_theme-negotiator/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service_twig-extension/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/service_uninstall-validator/ - 2023-09-14 + 2023-09-21 + daily + + + https://www.drush.org/latest/latest/generators/single-directory-component/ + 2023-09-21 daily https://www.drush.org/latest/latest/generators/test_browser/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/test_kernel/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/test_nightwatch/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/test_unit/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/test_webdriver/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/theme/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/theme_settings/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/yml_breakpoints/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/yml_links_action/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/yml_links_contextual/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/yml_links_menu/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/yml_links_task/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/yml_migration/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/yml_module-libraries/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/yml_permissions/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/yml_routing/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/yml_services/ - 2023-09-14 + 2023-09-21 daily https://www.drush.org/latest/latest/generators/yml_theme-libraries/ - 2023-09-14 + 2023-09-21 daily \ No newline at end of file diff --git a/12.x/sitemap.xml.gz b/12.x/sitemap.xml.gz index 2cd41b8e6a72c954a9d9a59c8aa82cb8eb2ebcd7..4e8a7883267c055a278c12dcf860b9bbce528f58 100644 GIT binary patch delta 1809 zcmV+s2k!W}4#^G&ABzYG{VoiV2OfXvrRg}%q?u`(OWJAEPH!9#SdkmyLE|Bs{qzM$ zN>LuC9y1*H6~moG3*0?$zz{-QDdCIpsCG?$zy|AAS6WzP28_9?(cRlZy%oBl#hS<2Fq9T z$G!3Dp}tF8-$sWV`}sYLOcc}k)BV0)dHstrChPUXi@O)!iMyBL#q)B>`r6fHs+X># zL!ie8E!j->`>R(LqWuNwzrwZNr@AXZk^H{xD)g=_>hY9ZJaiEw{1dA z136vx@+8=OB$XI|*!XFc)@=!+cH}6?Elpcx5vzZEV%?F7r|#BQ(b}M>sUsM2O#ovBt}8iIu4H9iQV#;B zcH}c|Eap6D97Am-y9A`07v6}*i=^h(!q{eZlcR_}2Ss4)PvYD3Ta^N)K5NC%a5|5cOVPzW@WFSFafI~(p5MrsYm z9LRc@ltWPzk-~{kp4q97Og8f)lSsf=W_m`(If{Q=D;t=IN7{~7srK2Jy|p_ZDB?` z0!kxyO|7+OLrBP)+T0-lXO|J!cu@ZJg9zxTWUppcJE9n#&C}O1GV9v2H9;b=KjBR|!P{4zXar8kWG0*3kILEM`n4ykgXYA~dwDa018HJW$c@IF%HINEo}@MP7_m7? zlL-mhuuDk1HLaeSBTZ1y^SK5nHH1jJ6u5t_uEyJ6-+%c1-H(5Mc=!Hi80hSH>uGj+ zlC_UZ+`kFw?J6d_p&vk~fAfab1PJ~ICwf!Ma^BQV_J}tyIrSIIU&`+Q(*J!_8W4N^ zV!d#(28??M-VSL8qZH5FwPXrtxjRmx+E_Z;kLed=;*hd5qW2N(23&u~?g^CN>kPCbhkmG2;jFNfBo4L7MM4^>pgg>l z8lceWYiM<>14n?Ours%Jg&R;x3V59<&p@HTO1=a#BG7>XIYlCpA;_KjMZ0ZG{MyAD zlYHrBjmK^PWd&kp^f$1{WntLC+0%0eIbD9tP9kc@^DPX)D*`$t`~n}L7wCW2^mD5t zG5T=C+q88Mb#V_c7k;TgmZ8gal%3FYkl7^6yTCfT{R};(2`I`AB(+7tb((@GZo5TF zMbu_aT;h#lkWQ?D^x_KMNL3A~m?s|q;xrlUfbH=}PP7)_+SY!PQ*mZ`) zW%}H=k_kf-@TJgB z7;b|MOjv5A4ol!zV+Snm8hIAm1I4@sJy;99M9BZ6aL=ELYw_?enm+tb3#I@77PW3s delta 1809 zcmV+s2k!XE4!I5oABzYGKK=rc2OfWE4^78*Ce2LST+&XPbb8}}z>3@m4;l~A?58h4 zQjYRC_0Zv87g-b~{|GJifn6?cUp-oLb)pd2ySwY>yPNAPa>{FV-QD$v_dkmtu3z0h zyUoEwN>}A%7w@k7l!hPo`*9q1krP=t#GMb_KB~UFi2L>6{$}^``u^EfdDMR|SpJ$H zx5lgc`Ymz&8Xa=%=kG8wQB3Ej+kHLr@`Exa>-GJMn-|}So0sDG_vMuJ*u`n8m#(8j zpoe=c*-W?liz5rs{t4;7!nNL~m_oVGO=Bu=t#mqWozfk+6ZAOvkc#weoHls3Z9+{0 zIbG)RB-nib)$@rOo$UaI9LiB22!y%~evBxv zN|uPXQHErIBJLu{iNv^*l^P^O#@*K z@yNO(nD}a~oJsFggA6wZ`QEh=??Dm3uFy%B5;*Sn!xz=!mLG?-+YE)0^2!>n} zz*vFnN)DAPS(%sAgTSdB`HUNjIS(4gP+Q3^0qN$2H=^+(skyZF-(PI<&DyD;(w3?7^vXBuCjtT@C!0d zHgDm@aUoJq7R^grn9-Ji(#Ty?Ywg((60)W?cSyk5K7d0i7{8TJ!1)H3XhogI>P zUK=H&&@zp&cyT8zUXHSbag-Nka(Kv(q;NVMEX+XZyiq3AYY*1*>4_R~q+{<#;T<7z zqcNxQzd)ELX-!>5Y);Z-LV`Ab>=F`hO{=HoND~zFysiOC4I$Dl1#YXW@#eR8@BeuF z(}(wO-~9puogHsI%}$T9_Hl{(*CD-G#bh`10|@o+-msbg!T;n$uWMP(>)Od4@d75N z{$lxS`3xZa-$$hZvDZJ=6DMoHxQF2FkajRi@yuOIrhtaK<0M*+q|)wx=?YMWyeDJ) z=!4Nag!@e{cJtYMQu%_lW|V#0dKK$uz{RWb#sDGDr!2L%b;BA017Cv%MD(WvVBB%C z2k$06QJy4NBw*x!9T=0EJFpL#t!ma0Dm{J9B$ixB;c4fY&|c87LH3$(KMz1UgV4 zr$|IH1UXZ`Xt#}tU%Oaik}ut?@z@QZtU&A;{S9n#Sr~S3_VnC;K~9&q*-1q0c)o-o zctt>~gkRtz^aA~wer|OnMjwuNleTU|UEBlAfnO?+W$1F<%1&rH$ZQhkRbZ{%euf^? z1QcZ#KUh-`#SgYfYx}i35*G))X!sLrAVsr+H&Rv0B<8II0P)*EQmc?{E9QOA0WV?R zQ(VkRt;d8%pJVcW77m+E)ilN2*0uH)P-=|tIzVj8S{oW=AUO0v25IX&JyA%2LqEvW zi!~DQc=&a9^hv~-^rReus#l+UBcq7nU087_V5XOT?WX~0K(T)6Ciey@d$;z + + readme + + + + + + + + + + +
  • render-element @@ -3944,6 +3958,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/12.x/using-drush-configuration/index.html b/12.x/using-drush-configuration/index.html index 34035d4ae5..0af5cf0bde 100644 --- a/12.x/using-drush-configuration/index.html +++ b/12.x/using-drush-configuration/index.html @@ -3994,6 +3994,20 @@ +
  • + + readme + +
  • + + + + + + + + +
  • render-element @@ -4017,6 +4031,20 @@ + + + + + +
  • + + single-directory-component + +
  • + + + + diff --git a/dev/generators/readme/index.html b/dev/generators/readme/index.html new file mode 100644 index 0000000000..9b8ee56332 --- /dev/null +++ b/dev/generators/readme/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../12.x/generators/readme/... + + \ No newline at end of file diff --git a/dev/generators/sdc/index.html b/dev/generators/sdc/index.html new file mode 100644 index 0000000000..73af63d0d1 --- /dev/null +++ b/dev/generators/sdc/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../12.x/generators/sdc/... + + \ No newline at end of file diff --git a/dev/generators/single-directory-component/index.html b/dev/generators/single-directory-component/index.html new file mode 100644 index 0000000000..585e02477c --- /dev/null +++ b/dev/generators/single-directory-component/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../12.x/generators/single-directory-component/... + + \ No newline at end of file diff --git a/latest/generators/readme/index.html b/latest/generators/readme/index.html new file mode 100644 index 0000000000..9b8ee56332 --- /dev/null +++ b/latest/generators/readme/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../12.x/generators/readme/... + + \ No newline at end of file diff --git a/latest/generators/sdc/index.html b/latest/generators/sdc/index.html new file mode 100644 index 0000000000..73af63d0d1 --- /dev/null +++ b/latest/generators/sdc/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../12.x/generators/sdc/... + + \ No newline at end of file diff --git a/latest/generators/single-directory-component/index.html b/latest/generators/single-directory-component/index.html new file mode 100644 index 0000000000..585e02477c --- /dev/null +++ b/latest/generators/single-directory-component/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../12.x/generators/single-directory-component/... + + \ No newline at end of file