From 706ea01362de3ba126039580c2109225a8d1a084 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me>
Date: Wed, 21 Feb 2024 21:12:44 +0100
Subject: [PATCH] Commander => Add interactive mode

---
 NodeApp/src/commander/CommanderApp.ts | 5 +++++
 NodeApp/src/config/Config.ts          | 4 ++++
 2 files changed, 9 insertions(+)

diff --git a/NodeApp/src/commander/CommanderApp.ts b/NodeApp/src/commander/CommanderApp.ts
index 03814c8..f32b3d7 100644
--- a/NodeApp/src/commander/CommanderApp.ts
+++ b/NodeApp/src/commander/CommanderApp.ts
@@ -26,6 +26,7 @@ class CommanderApp {
                            sortSubcommands  : true
                        })
         .option('-H, --host <string>', 'override the Dojo API endpoint', ClientsSharedConfig.apiURL)
+        .option('-I, --interactive', 'show interactive interface when available', Config.interactiveMode)
         .addOption(new Option('--debug').hideHelp())
         .hook('preAction', () => {
             this.warnDevelopmentVersion();
@@ -37,6 +38,10 @@ class CommanderApp {
             ClientsSharedConfig.apiURL = this.program.opts().host;
         });
 
+        this.program.on('option:interactive', () => {
+            Config.interactiveMode = this.program.opts().interactive;
+        });
+
         this.program.on('option:debug', () => {
             SharedConfig.debug = true;
         });
diff --git a/NodeApp/src/config/Config.ts b/NodeApp/src/config/Config.ts
index b0d2df8..375f0cf 100644
--- a/NodeApp/src/config/Config.ts
+++ b/NodeApp/src/config/Config.ts
@@ -30,6 +30,8 @@ class Config {
         neededFiles: Array<string>
     };
 
+    public interactiveMode: boolean;
+
     constructor() {
         this.localConfig = {
             folder     : getAppDataPath('DojoCLI'),
@@ -62,6 +64,8 @@ class Config {
         this.exercise = {
             neededFiles: JSON.parse(process.env.EXERCISE_NEEDED_FILES || '[]')
         };
+
+        this.interactiveMode = process.env.INTERACTIVE_MODE === 'true';
     }
 }
 
-- 
GitLab