From 22f3308c4efc9ee0eb4b361dfb0e8dce7f2d1b2e Mon Sep 17 00:00:00 2001
From: Marc Riera Irigoyen <marc.riera.irigoyen@gmail.com>
Date: Mon, 4 Jan 2021 02:12:04 +0100
Subject: [PATCH] Initial version

---
 okapi-batch-runner.py | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 okapi-batch-runner.py

diff --git a/okapi-batch-runner.py b/okapi-batch-runner.py
new file mode 100644
index 0000000..20b6a2a
--- /dev/null
+++ b/okapi-batch-runner.py
@@ -0,0 +1,41 @@
+import subprocess
+import sys
+import os
+import re
+import io
+import glob
+import configparser
+from pathlib import Path
+
+def select_item(welcome_text, items):
+    print(welcome_text+"\n")
+    for i, item in enumerate(items):
+        print('{}. {}'.format(i + 1, item))
+    try:
+        selected = input("\nSelect an option by typing its number (1-{}): ".format(len(items)))
+        result = items[int(selected) - 1]
+        return result
+    except KeyboardInterrupt:
+        print('User requested to exit')
+        exit()
+    except ValueError:
+        print('Error! Please enter only one number')
+        exit()
+    except IndexError:
+        print('Error! Please enter one number between 1-{}'.format(len(items)))
+        exit()
+
+
+config = configparser.ConfigParser()
+config.read(os.path.join(sys.path[0],"config.ini"))
+rainbow = config["Options"]["rainbow_exec"]
+
+
+list_projects = os.listdir(os.path.join(sys.path[0],"projects"))
+project_folder = os.path.join(sys.path[0],"projects",select_item("Available projects:",list_projects))
+project = os.path.join(project_folder,"project.rnb")
+
+list_pipelines = [os.path.basename(x) for x in glob.glob(os.path.join(sys.path[0],"projects",project_folder,"*.pln"))]
+pipeline = os.path.join(project_folder,select_item("Available pipelines:",list_pipelines))
+
+subprocess.run([rainbow,"-p",project,"-pln",pipeline,"-np"])