From 2b1870f0c68a0f6a57c2409e7415c231977066b4 Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen@paragon-es.de> Date: Sat, 4 Nov 2017 17:04:30 +0100 Subject: [PATCH] #10 Determine theme name even for initial installation and write that back to composer.json --- composer.json | 2 ++ src/Handler.php | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index feccd41..1bddea1 100644 --- a/composer.json +++ b/composer.json @@ -63,6 +63,8 @@ "drupal/chosen": "^2.4", "drupal/coder": "^8.2", "harvesthq/chosen": "^1.8", + "lakedrops/composer-json-tools": "^0.1", + "lakedrops/dotenv": "^0.1", "matthiasmullie/path-converter": "^1.0" }, "minimum-stability": "dev", diff --git a/src/Handler.php b/src/Handler.php index 27100dc..a7c8055 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -6,9 +6,11 @@ use Composer\Package\Package; use Composer\Composer; use Composer\IO\IOInterface; use Composer\Script\Event; +use LakeDrops\Component\Composer\Utils; +use LakeDrops\Component\Dotenv\Dotenv; +use MatthiasMullie\PathConverter\Converter; use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\Finder\Finder; -use MatthiasMullie\PathConverter\Converter; /** * Class Handler. @@ -182,7 +184,6 @@ class Handler { $extra = $this->composer->getPackage() ->getExtra() + ['theme-d8-sass' => []]; $this->options = array_replace_recursive([ - 'project_name' => 'mytheme', 'base_theme' => [ 'name' => 'bartik', 'import' => [], @@ -190,6 +191,19 @@ class Handler { 'bower_assets' => [], ], $extra['theme-d8-sass']); + // If we don't have a project name by now, lets get some magic at work. + if (empty($this->options['project_name'])) { + $defaultName = str_replace([' ', '-', '_', '.'], '', basename(getcwd())) . '_theme'; + $env = new Dotenv('custom_theme', $this->io); + $this->options['project_name'] = $env->receive('name', 'Name of custom theme', $defaultName); + } + + // Update composer.jon if necessary. + $composerUtils = new Utils($this->composer); + $composerUtils + ->setSubSection('extra', 'theme-d8-sass', $this->options) + ->write(); + $fs = new Filesystem(); $dependencies = []; -- GitLab