forked from seanr/drupal-fixtures
-
Notifications
You must be signed in to change notification settings - Fork 2
/
fixtures.drush.inc
115 lines (102 loc) · 3.05 KB
/
fixtures.drush.inc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
use Drupal\Fixtures\Providers\FixtureProviderChainInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Implements hook_drush_command().
*/
function fixtures_drush_command() {
$items = array();
// Run all fixtures of all types
$items['fixtures-all'] = array(
'description' => 'Run installation of all fixtures',
'bootstrap' => 'DRUSH_BOOTSTRAP_DRUPAL_FULL',
'callback' => 'fixtures_drush_create_all'
);
$existingTypes = 'user,node,menu';
if (function_exists('drupal_dic')) {
/* @var $dic ContainerInterface */
$dic = drupal_dic();
$existingTypes = '';
if ($dic->has('fixture_provider_chain')) {
/** @var $providerChain FixtureProviderChainInterface */
$providerChain = $dic->get('fixture_provider_chain');
$existingTypes = implode(',', $providerChain->getProviderNames());
}
}
$items['fixtures-type'] = array(
'description' => 'Run installation of given type of fixtures',
'bootstrap' => 'DRUSH_BOOTSTRAP_DRUPAL_FULL',
'callback' => 'fixtures_drush_create_type',
'options' => array(
'type' => 'You can choose one of the fixture types to be installed: ' . $existingTypes,
)
);
$items['fixtures-validate-all'] = array(
'description' => 'Run validation of all fixtures',
'bootstrap' => 'DRUSH_BOOTSTRAP_DRUPAL_FULL',
'callback' => 'fixtures_drush_validate_all'
);
return $items;
}
function fixtures_drush_create_type() {
$type = drush_get_option('type');
/* @var $dic ContainerInterface */
$dic = drupal_dic();
/** @var $providerChain FixtureProviderChainInterface */
$providerChain = $dic->get('fixture_provider_chain');
if ($providerChain->hasProvider($type)) {
if (TRUE == $result = $providerChain->processProvider($type)) {
drush_log('Generated ' . $type . ' fixtures.', 'success');
}
else {
drush_log(
'Error generating ' . $type . ' fixtures: ' . $result,
'error'
);
}
}
else {
drush_log(
'Fixtures of type: ' . $type . ' are not available?!',
'error'
);
$result = FALSE;
}
return TRUE === $result;
}
/**
* Install all types of fixtures available
*/
function fixtures_drush_create_all() {
/* @var $dic ContainerInterface */
$dic = drupal_dic();
/** @var $providerChain FixtureProviderChainInterface */
$providerChain = $dic->get('fixture_provider_chain');
if (TRUE == $result = $providerChain->processAll()) {
drush_log('Generated all fixtures.', 'success');
}
else {
drush_log(
'Error generating all fixtures: ' . $result,
'error'
);
}
}
/**
* Validate all types of fixtures available
*/
function fixtures_drush_validate_all() {
/* @var $dic ContainerInterface */
$dic = drupal_dic();
/** @var $providerChain FixtureProviderChainInterface */
$providerChain = $dic->get('fixture_provider_chain');
if (TRUE == $result = $providerChain->validateAll()) {
drush_log('Validated all fixtures.', 'success');
}
else {
drush_log(
'Error validating all fixtures: ' . $result,
'error'
);
}
}