Skip to content
Snippets Groups Projects

[#3360182] Added a new option to the generator to determine where the files will be saved

Merged [#3360182] Added a new option to the generator to determine where the files will be saved
2 files
+ 34
8
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -73,13 +73,18 @@ class MediaMigrateGeneratorV1 extends BaseGenerator {
'target_field' => new Question('Target Media Type Field', 'field_media_image'),
'lang_code' => new Question('Language Code', 'en'),
'translation_languages' => new Question('Translation languages (comma separated)', 'none'),
'destination' => new Question('Use migration file as a migration "plugin" or as "config"', 'plugin'),
];
unset($questions['class']);
$questions['plugin_id']->setValidator([
MediaMigrateGenerator::class,
self::class,
'validatePluginId',
]);
$questions['destination']->setValidator([
self::class,
'validateDestination',
]);
$vars = &$this->collectVars($input, $output, $questions);
@@ -106,7 +111,7 @@ class MediaMigrateGeneratorV1 extends BaseGenerator {
$vars['id_key'] = $entityType->getKey('id');
$this->addFile()
->path('config/install/migrate_plus.migration.{plugin_id}_step1.yml')
->path('{destination}/migrate_plus.migration.{plugin_id}_step1.yml')
->template('media-migration-step1.yml.twig')
->vars($vars);
@@ -114,7 +119,7 @@ class MediaMigrateGeneratorV1 extends BaseGenerator {
// to add translations or not.
$vars['has_translation'] = (count($vars['translation_languages']) > 0 && $vars['translation_languages'][0] != 'none');
$this->addFile()
->path('config/install/migrate_plus.migration.{plugin_id}_step2.yml')
->path('{destination}/migrate_plus.migration.{plugin_id}_step2.yml')
->template('media-migration-step2.yml.twig')
->vars($vars);
@@ -126,7 +131,7 @@ class MediaMigrateGeneratorV1 extends BaseGenerator {
$vars['translation_language'] = $vars['lang_code'] = $language;
$this->addFile()
->path("config/install/migrate_plus.migration.{plugin_id}_step1_{$language}.yml")
->path("{destination}/migrate_plus.migration.{plugin_id}_step1_{$language}.yml")
->template('media-migration-step1.yml.twig')
->vars($vars);
}
@@ -161,4 +166,14 @@ class MediaMigrateGeneratorV1 extends BaseGenerator {
return $value;
}
/**
* Plugin destination validator.
*/
public static function validateDestination($value): string {
if (!in_array($value, ['plugin', 'config'])) {
throw new \UnexpectedValueException('Only two options are available: "plugin" and "configs".');
}
return $value === 'plugin' ? 'migrations' : 'config/install';
}
}
Loading