From fe52052a8bff0b49cdb5a1473b151bf50b3b555f Mon Sep 17 00:00:00 2001
From: jurgenhaas <juergen@paragon-es.de>
Date: Mon, 6 Jul 2020 17:45:33 +0200
Subject: [PATCH] Further improvements around scripting Create .gitlab-ci.yml
 if not yet present

---
 prepareLocally.sh => bin/prepareLocally.sh |  0
 bin/spoon                                  |  6 ++++++
 composer.json                              |  3 +++
 src/Handler.php                            | 23 ++++++++++++++++++++++
 4 files changed, 32 insertions(+)
 rename prepareLocally.sh => bin/prepareLocally.sh (100%)
 create mode 100755 bin/spoon

diff --git a/prepareLocally.sh b/bin/prepareLocally.sh
similarity index 100%
rename from prepareLocally.sh
rename to bin/prepareLocally.sh
diff --git a/bin/spoon b/bin/spoon
new file mode 100755
index 0000000..79bb52d
--- /dev/null
+++ b/bin/spoon
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+COMPOSER=composer.spoons.json
+export COMPOSER
+
+composer $@
diff --git a/composer.json b/composer.json
index 7d7e72e..798dbf0 100644
--- a/composer.json
+++ b/composer.json
@@ -28,6 +28,9 @@
             "LakeDrops\\DrupalSpoons\\": "src/"
         }
     },
+    "bin": [
+        "bin/spoon"
+    ],
     "extra": {
         "class": "LakeDrops\\DrupalSpoons\\Plugin"
     },
diff --git a/src/Handler.php b/src/Handler.php
index dbff564..97b1be2 100644
--- a/src/Handler.php
+++ b/src/Handler.php
@@ -14,6 +14,8 @@ use Symfony\Component\Filesystem\Filesystem;
  */
 class Handler {
 
+  const DRUPAL_SPOONS_VERSION = '1.7.0-rc1';
+
   /**
    * The composer object of this session.
    *
@@ -98,6 +100,12 @@ class Handler {
         $fs->symlink($rel . $item, $moduleRoot . "/$item");
       }
     }
+
+    // Prepare GitLab CI file.
+    $gitlabCiFile = $projectRoot . '/.gitlab-ci.yml';
+    if (!$fs->exists($gitlabCiFile)) {
+      $fs->dumpFile($gitlabCiFile, $this->defaultGitLabCi());
+    }
   }
 
   /**
@@ -187,4 +195,19 @@ class Handler {
     ];
   }
 
+  /**
+   * Get default GitLab CI instructions for DrupalSpoons.
+   *
+   * @return string
+   */
+  protected function defaultGitLabCi(): string {
+    $version = self::DRUPAL_SPOONS_VERSION;
+    return <<<gitlabci
+include:
+  - project: 'drupalspoons/webmasters'
+    ref: $version
+    file: 'templates/.gitlab-ci.yml'
+gitlabci;
+  }
+
 }
-- 
GitLab