test Drupal site working on Koality Theme Builder
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

131 lines
3.3 KiB

<?php
namespace Drupal\koality_theme\Generator;
use Drupal\Console\Core\Generator\Generator;
use Drupal\Console\Extension\Manager;
use Drupal\Component\Serialization\Yaml;
use Drupalfinder\DrupalFinder;
/**
* Class KoalityThemeGenerator.
*/
class KoalityThemeGenerator extends Generator {
/**
* @var Manager
*/
protected $extensionManager;
/**
* AuthenticationProviderGenerator constructor.
*
* @param Manager $extensionManager
*/
public function __construct(
Manager $extensionManager
) {
$this->extensionManager = $extensionManager;
}
/**
* {@inheritdoc}
*/
public function generate(array $parameters) {
$dir = $parameters['dir'];
$breakpoints = $parameters['breakpoints'];
$machine_name = $parameters['machine_name'];
$parameters['type'] = 'theme';
$dir = ($dir == '/' ? '' : $dir) . '/' . $machine_name;
if (file_exists($dir)) {
if (!is_dir($dir)) {
throw new \RuntimeException(
sprintf(
'Unable to generate the bundle as the target directory "%s" exists but is a file.',
realpath($dir)
)
);
}
$files = scandir($dir);
if ($files != ['.', '..']) {
throw new \RuntimeException(
sprintf(
'Unable to generate the bundle as the target directory "%s" is not empty.',
realpath($dir)
)
);
}
if (!is_writable($dir)) {
throw new \RuntimeException(
sprintf(
'Unable to generate the bundle as the target directory "%s" is not writable.',
realpath($dir)
)
);
}
}
if ($parameters['base_theme_regions'] && $parameters['base_theme']) {
$defaultRegions = Yaml::decode(file_get_contents($parameters['base_theme_path']));
$parameters['base_theme_regions'] = $defaultRegions['regions'];
$parameters['base_theme_regions_hidden'] = $defaultRegions['regions_hidden'];
}
$themePath = $dir . '/';
// $drupalFinder = new DrupalFinder();
// $drupalFinder->locateRoot();
$module_template_dir = drupal_get_path('module', 'koality_theme') . '/templates/';
$this->addSkeletonDir('/var/www/docroot/' . $module_template_dir);
$test = '';
$this->renderFile(
'theme/koality-info.yml.twig',
$themePath . $machine_name . '.info.yml',
$parameters
);
$this->renderFile(
'theme/koality-theme.twig',
$themePath . $machine_name . '.theme',
$parameters
);
$this->renderFile(
'theme/koality-libraries.yml.twig',
$themePath . $machine_name . '.libraries.yml',
$parameters
);
// scaffold directories
$this->renderFile(
'theme/gitkeep.twig',
$themePath . 'src/components/.gitkeep'
);
$this->renderFile(
'theme/gitkeep.twig',
$themePath . 'src/global/.gitkeep'
);
$this->renderFile(
'theme/gitkeep.twig',
$themePath . 'src/global/base/.gitkeep'
);
$this->renderFile(
'theme/gitkeep.twig',
$themePath . 'src/global/common/.gitkeep'
);
$this->renderFile(
'theme/gitkeep.twig',
$themePath . 'src/global/utils.gitkeep'
);
if ($breakpoints) {
$this->renderFile(
'theme/koality-breakpoints.yml.twig',
$themePath . $machine_name . '.breakpoints.yml',
$parameters
);
}
}
}