X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fdevel%2Fdevel_generate%2Fdrush%2Fdevel_generate.drush.inc;fp=web%2Fmodules%2Fcontrib%2Fdevel%2Fdevel_generate%2Fdrush%2Fdevel_generate.drush.inc;h=33ae8a267482bc560411d6e445bb16d285f95f4e;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hp=0000000000000000000000000000000000000000;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad;p=yaffs-website diff --git a/web/modules/contrib/devel/devel_generate/drush/devel_generate.drush.inc b/web/modules/contrib/devel/devel_generate/drush/devel_generate.drush.inc new file mode 100644 index 000000000..33ae8a267 --- /dev/null +++ b/web/modules/contrib/devel/devel_generate/drush/devel_generate.drush.inc @@ -0,0 +1,196 @@ + 'drush_devel_generate', + 'callback arguments' => array( + 'plugin_id' => 'user', + ), + 'description' => 'Create users.', + 'arguments' => array( + 'num' => 'Number of users to generate.', + ), + 'options' => array( + 'kill' => 'Delete all users before generating new ones.', + 'roles' => 'A comma delimited list of role IDs which should be granted to the new users. No need to specify authenticated user role.', + 'pass' => 'Specify a password to be set for all generated users.', + ), + 'aliases' => array('genu'), + ); + $items['generate-terms'] = array( + 'callback' => 'drush_devel_generate', + 'callback arguments' => array( + 'plugin_id' => 'term', + ), + 'description' => 'Create terms in specified vocabulary.', + 'arguments' => array( + 'machine_name' => 'Vocabulary machine name into which new terms will be inserted.', + 'num' => 'Number of terms to insert. Defaults to 10.', + ), + 'options' => array( + 'kill' => 'Delete all terms in specified vocabulary before generating.', + 'feedback' => 'An integer representing interval for insertion rate logging. Defaults to 1000', + 'pipe' => 'Returns the list of generated terms, one per line.', + ), + 'aliases' => array('gent'), + + ); + $items['generate-vocabs'] = array( + 'callback' => 'drush_devel_generate', + 'callback arguments' => array( + 'plugin_id' => 'vocabulary', + ), + 'description' => 'Create vocabularies.', + 'arguments' => array( + 'num' => 'Number of vocabularies to create. Defaults to 1.', + ), + 'options' => array( + 'kill' => 'Delete all vocabularies before generating.', + 'pipe' => 'Returns the list of generated vocabularies, one per line.', + ), + 'aliases' => array('genv'), + ); + $items['generate-content'] = array( + 'callback' => 'drush_devel_generate', + 'callback arguments' => array( + 'plugin_id' => 'content', + ), + 'description' => 'Create content.', + 'drupal dependencies' => array('devel_generate'), + 'arguments' => array( + 'num' => 'Number of nodes to generate.', + 'max_comments' => 'Maximum number of comments to generate.', + ), + 'options' => array( + 'kill' => 'Delete all content before generating new content.', + 'types' => 'A comma delimited list of content types to create. Defaults to page,article.', + 'feedback' => 'An integer representing interval for insertion rate logging. Defaults to 1000', + 'skip-fields' => 'A comma delimited list of fields to omit when generating random values', + 'languages' => 'A comma-separated list of language codes', + ), + 'aliases' => array('genc'), + ); + $items['generate-menus'] = array( + 'callback' => 'drush_devel_generate', + 'callback arguments' => array( + 'plugin_id' => 'menu', + ), + 'description' => 'Create menus and menu items.', + 'drupal dependencies' => array('devel_generate'), // Remove these once devel.module is moved down a directory. http://drupal.org/node/925246 + 'arguments' => array( + 'number_menus' => 'Number of menus to generate. Defaults to 2.', + 'number_links' => 'Number of links to generate. Defaults to 50.', + 'max_depth' => 'Max link depth. Defaults to 3', + 'max_width' => 'Max width of first level of links. Defaults to 8.', + ), + 'options' => array( + 'kill' => 'Delete all previously generated menus and links before generating new menus and links.', + 'pipe' => 'Returns the list of generated menus, one per line.', + ), + 'aliases' => array('genm'), + ); + return $items; +} + +/** + * Implements drush_hook_COMMAND_validate(). + */ +function drush_devel_generate_generate_users_validate() { + + //Array of "Callback arguments" and "command line args". + $params = func_get_args(); + _drush_plugin_validate($params); +} + +/** + * Implements drush_hook_COMMAND_validate(). + */ +function drush_devel_generate_generate_terms_validate() { + + //Array of "Callback arguments" and "command line args". + $params = func_get_args(); + _drush_plugin_validate($params); +} + +/** + * Implements drush_hook_COMMAND_validate(). + */ +function drush_devel_generate_generate_vocabs_validate() { + + //Array of "Callback arguments" and "command line args". + $params = func_get_args(); + _drush_plugin_validate($params); +} + +/** + * Implements drush_hook_COMMAND_validate(). + */ +function drush_devel_generate_generate_content_validate() { + + //Array of "Callback arguments" and "command line args". + $params = func_get_args(); + _drush_plugin_validate($params); +} + +/** + * Implements drush_hook_COMMAND_validate(). + */ +function drush_devel_generate_generate_menus_validate() { + + //Array of "Callback arguments" and "command line args". + $params = func_get_args(); + _drush_plugin_validate($params); +} + +/** + * Helper function which returns an array with a plugin instance + * for a given id and the validated values ready to be used by + * the generate() function of the plugin. + */ +function _drush_plugin_validate($params) { + + $instance_and_values = &drupal_static('drush_devel_generate_generate_validate'); + //Getting plugin_id and leaving the command line args + $plugin_id = array_shift($params); + + if (!isset($instance_and_values[$plugin_id])) { + + /** @var DevelGeneratePluginManager $manager */ + $manager = \Drupal::service('plugin.manager.develgenerate'); + + /** @var DevelGenerateBaseInterface $instance */ + $instance = $manager->createInstance($plugin_id, array()); + + //Plugin instance suit params in order to fit for generateElements + $values = $instance->validateDrushParams($params); + $instance_and_values[$plugin_id]['instance'] = $instance; + $instance_and_values[$plugin_id]['values'] = $values; + } + + return $instance_and_values[$plugin_id]; +} + +/** + * Command callback. Generate a number of elements. + */ +function drush_devel_generate() { + $params = func_get_args(); + $plugin_id = array_shift($params); + $instance_and_values = drupal_static('drush_devel_generate_generate_validate'); + + /** @var DevelGenerateBaseInterface $instance */ + $instance = $instance_and_values[$plugin_id]['instance']; + $values = $instance_and_values[$plugin_id]['values']; + $instance->generate($values); + +}