From a9f641fafd9b7b90b5e72fbe31d0791127000ec2 Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen@paragon-es.de> Date: Mon, 1 Aug 2016 18:56:39 +0200 Subject: [PATCH] #3 Move setup tasks for new projects into a composer plugin --- composer.json | 28 ++++----- scripts/boilerplate/.htaccess | 23 -------- scripts/boilerplate/template.services.yml | 35 ------------ .../boilerplate/template.settings.local.php | 14 ----- scripts/boilerplate/template.settings.php | 34 ----------- scripts/composer/ScriptHandler.php | 57 ------------------- 6 files changed, 11 insertions(+), 180 deletions(-) delete mode 100644 scripts/boilerplate/.htaccess delete mode 100644 scripts/boilerplate/template.services.yml delete mode 100644 scripts/boilerplate/template.settings.local.php delete mode 100644 scripts/boilerplate/template.settings.php delete mode 100644 scripts/composer/ScriptHandler.php diff --git a/composer.json b/composer.json index 291be7a..7630fae 100644 --- a/composer.json +++ b/composer.json @@ -23,6 +23,7 @@ "composer/installers": "^1.0.20", "drupal-composer/drupal-scaffold": "^2.0.1", "cweagans/composer-patches": "~1.0", + "lakedrops/d8-project-scaffold": "dev-master", "drupal/core": "8.1.7", "drush/drush": "~8.0", "drupal/console": "~0.10", @@ -64,29 +65,22 @@ }, "minimum-stability": "dev", "prefer-stable": true, - "autoload": { - "classmap": [ - "scripts/composer/ScriptHandler.php" - ] - }, "scripts": { - "drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold", - "post-install-cmd": [ - "DrupalProject\\composer\\ScriptHandler::createRequiredFiles", - "@preProcessTheme" - ], - "post-update-cmd": [ - "DrupalProject\\composer\\ScriptHandler::createRequiredFiles", - "@preProcessTheme" - ], - "preProcessTheme": [ - "cd web/themes/custom/NAME && gulp css --env production" - ] + "drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold" }, "config": { "discard-changes": true }, "extra": { + "drupal-scaffold": { + "excludes": [ + "sites/default/default.settings.php", + "sites/default/default.services.yml", + "sites/development.services.yml", + "sites/example.settings.local.php", + "sites/example.sites.php" + ] + }, "installer-paths": { "web/core": [ "type:drupal-core" diff --git a/scripts/boilerplate/.htaccess b/scripts/boilerplate/.htaccess deleted file mode 100644 index 1238c0d..0000000 --- a/scripts/boilerplate/.htaccess +++ /dev/null @@ -1,23 +0,0 @@ -# Deny all requests from Apache 2.4+. -<IfModule mod_authz_core.c> - Require all denied -</IfModule> - -# Deny all requests from Apache 2.0-2.2. -<IfModule !mod_authz_core.c> - Deny from all -</IfModule> -# Turn off all options we don't need. -Options -Indexes -ExecCGI -Includes -MultiViews - -# Set the catch-all handler to prevent scripts from being executed. -SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006 -<Files *> - # Override the handler again if we're run later in the evaluation list. - SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003 -</Files> - -# If we know how to do it safely, disable the PHP engine entirely. -<IfModule mod_php5.c> - php_flag engine off -</IfModule> \ No newline at end of file diff --git a/scripts/boilerplate/template.services.yml b/scripts/boilerplate/template.services.yml deleted file mode 100644 index 862bd49..0000000 --- a/scripts/boilerplate/template.services.yml +++ /dev/null @@ -1,35 +0,0 @@ -parameters: - session.storage.options: - gc_probability: 1 - gc_divisor: 100 - gc_maxlifetime: 200000 - cookie_lifetime: 2000000 - twig.config: - debug: false - auto_reload: null - cache: true - renderer.config: - required_cache_contexts: ['languages:language_interface', 'theme', 'user.permissions'] - auto_placeholder_conditions: - max-age: 0 - contexts: ['session', 'user'] - tags: [] - http.response.debug_cacheability_headers: false - factory.keyvalue: - {} - factory.keyvalue.expirable: - {} - filter_protocols: - - http - - https - - ftp - - news - - nntp - - tel - - telnet - - mailto - - irc - - ssh - - sftp - - webcal - - rtsp diff --git a/scripts/boilerplate/template.settings.local.php b/scripts/boilerplate/template.settings.local.php deleted file mode 100644 index 0e3cdd5..0000000 --- a/scripts/boilerplate/template.settings.local.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php - -assert_options(ASSERT_ACTIVE, TRUE); -\Drupal\Component\Assertion\Handle::register(); - -$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml'; -$config['system.logging']['error_level'] = 'verbose'; -$config['system.performance']['css']['preprocess'] = FALSE; -$config['system.performance']['js']['preprocess'] = FALSE; -# $settings['cache']['bins']['render'] = 'cache.backend.null'; -# $settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null'; -$settings['extension_discovery_scan_tests'] = TRUE; -$settings['rebuild_access'] = TRUE; -$settings['skip_permissions_hardening'] = TRUE; diff --git a/scripts/boilerplate/template.settings.php b/scripts/boilerplate/template.settings.php deleted file mode 100644 index 85485e3..0000000 --- a/scripts/boilerplate/template.settings.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php - -$databases = array ( - 'default' => array ( - 'default' => array ( - 'driver' => 'mysql', - 'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql', - 'database' => 'example', - 'username' => 'username', - 'password' => 'password', - 'host' => '127.0.0.1', - 'port' => '3306', - 'prefix' => '', - ), - ), -); - -$settings['update_free_access'] = FALSE; -$settings['container_yamls'][] = __DIR__ . '/services.yml'; -$settings['install_profile'] = 'standard'; -$settings['file_public_path'] = 'sites/default/files'; -$settings['file_private_path'] = 'sites/default/private'; -$settings['hash_salt'] = ''; -$settings['trusted_host_patterns'] = array( - '^www\.example\.com$', -); - -$config_directories['sync'] = 'sites/default/files/config/sync'; -$config_directories['staging'] = 'sites/default/files/config/staging'; -$config_directories['live'] = 'sites/default/files/config/live'; - -if (file_exists(__DIR__ . '/settings.local.php')) { - include __DIR__ . '/settings.local.php'; -} diff --git a/scripts/composer/ScriptHandler.php b/scripts/composer/ScriptHandler.php deleted file mode 100644 index 3070bd7..0000000 --- a/scripts/composer/ScriptHandler.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php - -/** - * @file - * Contains \DrupalProject\composer\ScriptHandler. - */ - -namespace DrupalProject\composer; - -use Symfony\Component\Filesystem\Filesystem; - -class ScriptHandler { - - protected static function getDrupalRoot($project_root) { - return $project_root . '/web'; - } - - public static function createRequiredFiles() { - $fs = new Filesystem(); - $root = getcwd(); - $drupalRoot = static::getDrupalRoot($root); - - foreach (['modules', 'profiles', 'themes', ] as $dir) { - if (!$fs->exists($drupalRoot . '/'. $dir)) { - $fs->mkdir($drupalRoot . '/'. $dir); - } - } - - foreach (['config/default/live', 'config/default/staging', 'config/default/sync', 'settings/default', 'files/default/files', 'files/default/private', ] as $dir) { - if (!$fs->exists($root . '/'. $dir)) { - $fs->mkdir($root . '/'. $dir); - $fs->copy($root . '/scripts/boilerplate/.htaccess', $root . '/' . $dir . '/.htaccess'); - } - } - - foreach (['files', 'private', ] as $dir) { - if (!$fs->exists($drupalRoot . '/sites/default/' . $dir)) { - $fs->symlink($root . '/files/default/' . $dir, $drupalRoot . '/sites/default/' . $dir); - $fs->chmod($drupalRoot . '/sites/default/' . $dir, 0755); - } - } - - foreach (['settings.php', 'services.yml', 'settings.local.php', ] as $template) { - if (!$fs->exists($drupalRoot . '/sites/default/' . $template)) { - $fs->copy($root . '/scripts/boilerplate/template.' . $template, $root . '/settings/default/' . $template); - $fs->symlink($root . '/settings/default/' . $template, $drupalRoot . '/sites/default/' . $template); - $fs->chmod($drupalRoot . '/sites/default/' . $template, 0666); - } - } - - if (!$fs->exists($drupalRoot . '/sites/default/files/config')) { - $fs->symlink($root . '/config/default', $drupalRoot . '/sites/default/files/config'); - } - - } - -} -- GitLab