From 5f90ffa8a5f150b1f39da828007833404d6ff7e8 Mon Sep 17 00:00:00 2001
From: jurgenhaas <juergen@paragon-es.de>
Date: Mon, 22 Jun 2020 18:50:04 +0200
Subject: [PATCH] Turn off dorgflow by default and provide an ahoy command to
 turn it on and off

---
 ahoy.yml        | 12 ++++++++++++
 composer.json   | 13 +++++++++++--
 src/Handler.php |  7 +++++++
 3 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/ahoy.yml b/ahoy.yml
index 13a258a..9bb3195 100644
--- a/ahoy.yml
+++ b/ahoy.yml
@@ -3,3 +3,15 @@ commands:
   update:
     cmd: composer dorgflow "$@"
     usage: Update DorgFlow setup in project
+  on:
+    cmd: |
+      echo "DORGFLOW=1" >>.env
+      env -i $(cat .env | xargs) >.env
+      composer dorgflow --no-interaction
+    usage: Turn on dorgflow
+  off:
+    cmd: |
+      echo "DORGFLOW=0" >>.env
+      env -i $(cat .env | xargs) >.env
+      composer dorgflow --no-interaction
+    usage: Turn off dorgflow
diff --git a/composer.json b/composer.json
index 17d0d4e..3531172 100644
--- a/composer.json
+++ b/composer.json
@@ -27,7 +27,8 @@
         "php": ">=7.2",
         "composer-plugin-api": "^1.0.0",
         "cypresslab/gitelephant": "^2.0|^4.0",
-        "lakedrops/composer-json-utils": "^1.5"
+        "lakedrops/composer-json-utils": "^1.5",
+        "lakedrops/dotenv": "^1.3"
     },
     "require-dev": {
         "composer/composer": "^1.10",
@@ -41,6 +42,14 @@
         }
     },
     "extra": {
-        "class": "LakeDrops\\DorgFlow\\Plugin"
+        "class": "LakeDrops\\DorgFlow\\Plugin",
+        "lakedrops": {
+            "ahoy": {
+                "dorgflow": {
+                    "usage": "Dorgflow settings and updates",
+                    "imports": ["ahoy.yml"]
+                }
+            }
+        }
     }
 }
diff --git a/src/Handler.php b/src/Handler.php
index eabba98..5c32393 100644
--- a/src/Handler.php
+++ b/src/Handler.php
@@ -5,6 +5,7 @@ namespace LakeDrops\DorgFlow;
 use Exception;
 use GitElephant\Repository;
 use LakeDrops\Component\Composer\BaseHandler;
+use LakeDrops\Component\Dotenv\Dotenv;
 use Symfony\Component\Filesystem\Filesystem;
 
 /**
@@ -24,6 +25,12 @@ class Handler extends BaseHandler {
       return;
     }
 
+    $env = new Dotenv('dorgflow', $this->io);
+    $dorgflow = $env->receiveGlobal('DORGFLOW', 'Dorgflow', '0');
+    if (empty($dorgflow)) {
+      return;
+    }
+
     $installationManager = $this->composer->getInstallationManager();
     $options = $this->getOptions();
     foreach ([
-- 
GitLab