nos0s/main.py
2023-03-24 00:03:49 -04:00

68 lines
1.7 KiB
Python

class MenuState:
def __init__(self, title, desc):
self.title = title
self.description = desc
self.parent = None
self.subs = []
def add_submenu(self, menu):
self.subs.append(menu)
menu.parent = self
def display_CLI(self):
display_text = f'{self.title}\n'
if self.parent != None:
display_text += f' b. Back'
for i in range(0, len(self.subs)):
sub = self.subs[i]
display_text += f' {i}. {sub.title}\n'
display_text += f' - {sub.description}\n'
return display_text
def nav_to_sub(self, sub_index):
if sub_index <= len(self.subs):
return self.subs[sub_index]
else:
return self
def nav_to_parent(self):
if self.parent != None:
return self.parent
else:
return self
def init_menus():
main_menu = MenuState("NOS0S\nselect an option", "NOS0S MAIN")
net = MenuState("net attacks", "tools to attack network devices")
main_menu.add_submenu(net)
return main_menu
def main():
main_menu = init_menus()
current_menu = main_menu
while current_menu != None:
print(current_menu.display_CLI())
res = input('> ')
if res == 'q':
break
elif res == 'b':
current_menu = current_menu.nav_to_parent()
else:
try:
selection = int(res)
current_menu = current_menu.nav_to_sub(selection)
except:
print("Invalid input. Please try again.")
if __name__ == '__main__':
main()