Add command line interface with PyInquirer

Add update requirements.txt
This commit is contained in:
Marcel Schwarz 2019-12-16 22:51:40 +01:00
parent c47b255924
commit 79449c8ad3
2 changed files with 40 additions and 22 deletions

50
main.py
View File

@ -1,31 +1,49 @@
from CommandRunner import CommandRunnerDebug as Runner from CommandRunner import CommandRunnerDebug as Runner
from PyInquirer import prompt
import importlib import importlib
import os import os
print("Loading modules")
modules = {} def transform_list_into_choices(choices_list):
for folder in os.listdir("./modules"): mapped_list = []
for choice in choices_list:
mapped_list.append({
"name": choice
})
return mapped_list
def load_modules():
print("Loading modules")
modules = {}
for folder in os.listdir("./modules"):
try: try:
curr_module = importlib.import_module('.' + folder, package="modules") curr_module = importlib.import_module('.' + folder, package="modules")
modules[folder] = curr_module.get_module() modules[folder] = curr_module.get_module()
except AttributeError: except AttributeError:
pass pass
print("Modules loaded successfully.\n") print("Modules loaded successfully.\n")
return modules
print("Available Modules:")
for mod in modules.keys():
print(mod)
print() def open_module_selection(modules):
print("Available Modules:")
module_selection = [
{
'type': 'checkbox',
'message': 'Select modules',
'name': 'modules',
'choices': transform_list_into_choices(
list(modules.keys())
)
}
]
return prompt(module_selection)
while True:
chosen_module = input("Please specify your module: ")
if chosen_module in modules.keys():
break
else:
print("Module was not found.")
print("\nChosen Module to run: " + chosen_module) modules = load_modules()
Runner().run(modules[chosen_module]) selected_modules = open_module_selection(modules)
for answer in selected_modules['modules']:
Runner().run(modules[answer])

View File

@ -1 +1 @@
PyInquirer==1.0.3