Pathologic was missing because of a .git folder inside.
[yaffs-website] / web / modules / contrib / devel / devel_generate / drush / devel_generate.drush.inc
1 <?php
2
3 /**
4  * @file
5  *  Generate content, taxonomy, menu, and users via drush framework.
6  */
7 use Drupal\devel_generate\DevelGenerateBaseInterface;
8 use Drupal\devel_generate\DevelGeneratePluginManager;
9
10 /**
11  * Implementation of hook_drush_command().
12  */
13 function devel_generate_drush_command() {
14   $items['generate-users'] = array(
15     'callback' => 'drush_devel_generate',
16     'callback arguments' => array(
17       'plugin_id' => 'user',
18     ),
19     'description' => 'Create users.',
20     'arguments' => array(
21       'num' => 'Number of users to generate.',
22     ),
23     'options' => array(
24       'kill' => 'Delete all users before generating new ones.',
25       'roles' => 'A comma delimited list of role IDs which should be granted to the new users. No need to specify authenticated user role.',
26       'pass' => 'Specify a password to be set for all generated users.',
27     ),
28     'aliases' => array('genu'),
29   );
30   $items['generate-terms'] = array(
31     'callback' => 'drush_devel_generate',
32     'callback arguments' => array(
33       'plugin_id' => 'term',
34     ),
35     'description' => 'Create terms in specified vocabulary.',
36     'arguments' => array(
37       'machine_name' => 'Vocabulary machine name into which new terms will be inserted.',
38       'num' => 'Number of terms to insert. Defaults to 10.',
39     ),
40     'options' => array(
41       'kill' => 'Delete all terms in specified vocabulary before generating.',
42       'feedback' => 'An integer representing interval for insertion rate logging. Defaults to 1000',
43       'pipe' => 'Returns the list of generated terms, one per line.',
44     ),
45     'aliases' => array('gent'),
46
47   );
48   $items['generate-vocabs'] = array(
49     'callback' => 'drush_devel_generate',
50     'callback arguments' => array(
51       'plugin_id' => 'vocabulary',
52     ),
53     'description' => 'Create vocabularies.',
54     'arguments' => array(
55       'num' => 'Number of vocabularies to create. Defaults to 1.',
56     ),
57     'options' => array(
58       'kill' => 'Delete all vocabularies before generating.',
59       'pipe' => 'Returns the list of generated vocabularies, one per line.',
60     ),
61     'aliases' => array('genv'),
62   );
63   $items['generate-content'] = array(
64     'callback' => 'drush_devel_generate',
65     'callback arguments' => array(
66       'plugin_id' => 'content',
67     ),
68     'description' => 'Create content.',
69     'drupal dependencies' => array('devel_generate'),
70     'arguments' => array(
71       'num' => 'Number of nodes to generate.',
72       'max_comments' => 'Maximum number of comments to generate.',
73     ),
74     'options' => array(
75       'kill' => 'Delete all content before generating new content.',
76       'types' => 'A comma delimited list of content types to create. Defaults to page,article.',
77       'feedback' => 'An integer representing interval for insertion rate logging. Defaults to 1000',
78       'skip-fields' => 'A comma delimited list of fields to omit when generating random values',
79       'languages' => 'A comma-separated list of language codes',
80     ),
81     'aliases' => array('genc'),
82   );
83   $items['generate-menus'] = array(
84     'callback' => 'drush_devel_generate',
85     'callback arguments' => array(
86       'plugin_id' => 'menu',
87     ),
88     'description' => 'Create menus and menu items.',
89     'drupal dependencies' => array('devel_generate'), // Remove these once devel.module is moved down a directory. http://drupal.org/node/925246
90     'arguments' => array(
91       'number_menus' => 'Number of menus to generate. Defaults to 2.',
92       'number_links' => 'Number of links to generate. Defaults to 50.',
93       'max_depth' => 'Max link depth. Defaults to 3',
94       'max_width' => 'Max width of first level of links. Defaults to 8.',
95     ),
96     'options' => array(
97       'kill' => 'Delete all previously generated menus and links before generating new menus and links.',
98       'pipe' => 'Returns the list of generated menus, one per line.',
99     ),
100     'aliases' => array('genm'),
101   );
102   return $items;
103 }
104
105 /**
106  * Implements drush_hook_COMMAND_validate().
107  */
108 function drush_devel_generate_generate_users_validate() {
109
110   //Array of "Callback arguments" and "command line args".
111   $params = func_get_args();
112   _drush_plugin_validate($params);
113 }
114
115 /**
116  * Implements drush_hook_COMMAND_validate().
117  */
118 function drush_devel_generate_generate_terms_validate() {
119
120   //Array of "Callback arguments" and "command line args".
121   $params = func_get_args();
122   _drush_plugin_validate($params);
123 }
124
125 /**
126  * Implements drush_hook_COMMAND_validate().
127  */
128 function drush_devel_generate_generate_vocabs_validate() {
129
130   //Array of "Callback arguments" and "command line args".
131   $params = func_get_args();
132   _drush_plugin_validate($params);
133 }
134
135 /**
136  * Implements drush_hook_COMMAND_validate().
137  */
138 function drush_devel_generate_generate_content_validate() {
139
140   //Array of "Callback arguments" and "command line args".
141   $params = func_get_args();
142   _drush_plugin_validate($params);
143 }
144
145 /**
146  * Implements drush_hook_COMMAND_validate().
147  */
148 function drush_devel_generate_generate_menus_validate() {
149
150   //Array of "Callback arguments" and "command line args".
151   $params = func_get_args();
152   _drush_plugin_validate($params);
153 }
154
155 /**
156  * Helper function which returns an array with a plugin instance
157  * for a given id and the validated values ready to be used by
158  * the generate() function of the plugin.
159  */
160 function _drush_plugin_validate($params) {
161
162   $instance_and_values = &drupal_static('drush_devel_generate_generate_validate');
163   //Getting plugin_id and leaving the command line args
164   $plugin_id = array_shift($params);
165
166   if (!isset($instance_and_values[$plugin_id])) {
167
168     /** @var DevelGeneratePluginManager $manager */
169     $manager = \Drupal::service('plugin.manager.develgenerate');
170
171     /** @var DevelGenerateBaseInterface $instance */
172     $instance = $manager->createInstance($plugin_id, array());
173
174     //Plugin instance suit params in order to fit for generateElements
175     $values = $instance->validateDrushParams($params);
176     $instance_and_values[$plugin_id]['instance'] = $instance;
177     $instance_and_values[$plugin_id]['values'] = $values;
178   }
179
180   return $instance_and_values[$plugin_id];
181 }
182
183 /**
184  * Command callback. Generate a number of elements.
185  */
186 function drush_devel_generate() {
187   $params = func_get_args();
188   $plugin_id = array_shift($params);
189   $instance_and_values = drupal_static('drush_devel_generate_generate_validate');
190
191   /** @var DevelGenerateBaseInterface $instance */
192   $instance = $instance_and_values[$plugin_id]['instance'];
193   $values = $instance_and_values[$plugin_id]['values'];
194   $instance->generate($values);
195
196 }