41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
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"])
|