drupal / dripyard_recipe_builder
Provides a Drush command to interactively compose Drupal recipes from active site configuration.
Package info
git.drupalcode.org/project/dripyard_recipe_builder.git
Type:drupal-module
pkg:composer/drupal/dripyard_recipe_builder
Requires
- drupal/core: ^10.3 || ^11
- drush/drush: ^13
- laravel/prompts: ^0.3
Requires (Dev)
- behat/mink: ^1.11
- behat/mink-browserkit-driver: ^2.2
- drupal/byte: ^1
- phpunit/phpunit: ^11
README
A Drush command that lets you interactively compose Drupal recipes from your site's active configuration.
Part of the Dripyard project.
Requirements
- Drupal 10.3+ or 11
- Drush 13+
- PHP 8.2+
Installation
composer require drupal/dripyard_recipe_builder
drush en dripyard_recipe_builder
Usage
drush dripyard:recipe_builder
Or use the alias:
drush drb
This launches an interactive TUI that walks you through:
- Upstream selection -- Pick existing recipes whose config should be excluded from your new recipe (avoids duplication).
- Metadata -- Set the recipe name, type, and description.
- Config selection -- Browse by category, use smart bundle discovery
(e.g.
node:blog), or search by name. - Dependency validation -- Flags any unresolved config dependencies
so you can add them or rely on
strict: false. - Module detection -- Collects the modules your selected config requires.
- Preview and write -- Review the generated
recipe.ymland config files, then write them to disk.
Options
| Option | Description |
|---|---|
--upstream=path1,path2 | Comma-separated upstream recipe paths |
--recipe-name="My Recipe" | Set the recipe name (skip the prompt) |
--recipe-type=Dripyard | Set the recipe type (default: Dripyard) |
--bundle-filter=node:blog | Pre-select all config for a bundle |
--refresh | Non-interactive re-export of an existing recipe |
Examples
Create a new recipe, selecting upstream recipes interactively:
drush drb
Create a recipe with a bundle pre-selected:
drush drb --bundle-filter=node:event
Update an existing recipe at a specific path:
drush drb recipes/my_recipe
Re-export an existing recipe without prompts:
drush drb recipes/my_recipe --refresh
Output
The command generates a recipe directory:
my_recipe/
recipe.yml
config/
node.type.event.yml
field.field.node.event.field_date.yml
views.view.events.yml
...
composer.json (if contrib modules are needed)
License
GPL-2.0-or-later