From 6be42383f283424a1fbe196e33e1adf61e51dfb3 Mon Sep 17 00:00:00 2001 From: Digital Studium Date: Sun, 7 Apr 2024 18:12:21 +0300 Subject: [PATCH] Add logs/edit --- kls | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- tmp.py | 3 +++ 2 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 tmp.py diff --git a/kls b/kls index f077a5e..91e006e 100755 --- a/kls +++ b/kls @@ -3,6 +3,11 @@ import curses import subprocess stdscr = curses.initscr() +stdscr.refresh() +curses.noecho() +curses.cbreak() +stdscr.keypad(True) +curses.curs_set(0) class Menu: @@ -46,13 +51,53 @@ def main(stdscr): current_menu = 0 menus[current_menu].win.addstr(1, 2, menus[current_menu].name, curses.A_REVERSE | curses.A_ITALIC) for menu in menus: - menu.win.addstr(3, 2, menu.rows[0], curses.A_REVERSE | curses.A_ITALIC) + menu.win.addstr(3, 2, menu.rows[menu.row], curses.A_REVERSE | curses.A_ITALIC) while running: [menu.win.refresh() for menu in menus] # refresh all menus - the_user_presses_the_key_et_voila = stdscr.getkey() - match the_user_presses_the_key_et_voila: + key_pressed = stdscr.getkey() + match key_pressed: case 'q': running = False + case 'l': + if current_menu == 2 and not menus[2].rows[menus[2].row].startswith("No resources") and menus[1].rows[menus[1].row] == "pods": + namespace = menus[0].rows[menus[0].row] + api_resource = menus[1].rows[menus[1].row] + resource = menus[2].rows[menus[2].row] + process = subprocess.call(f"kubectl -n {namespace} logs {resource} | less", shell=True) + stdscr = curses.initscr() + stdscr.refresh() + curses.noecho() + curses.cbreak() + stdscr.keypad(True) + curses.curs_set(0) + for menu in menus: + menu.win.clear() + menu.win.box() + menu.win.addstr(1, 2, menu.name) + for index, row in enumerate(menu.rows): + menu.win.addstr(index + 3, 2, row) + menu.win.addstr(3, 2, menu.rows[menu.row], curses.A_REVERSE | curses.A_ITALIC) + menus[current_menu].win.addstr(1, 2, menus[current_menu].name, curses.A_REVERSE | curses.A_ITALIC) + case 'e': + if current_menu == 2 and not menus[2].rows[menus[2].row].startswith("No resources"): + namespace = menus[0].rows[menus[0].row] + api_resource = menus[1].rows[menus[1].row] + resource = menus[2].rows[menus[2].row] + process = subprocess.call(f"kubectl edit {api_resource} -n {namespace} {resource}", shell=True) + stdscr = curses.initscr() + stdscr.refresh() + curses.noecho() + curses.cbreak() + stdscr.keypad(True) + curses.curs_set(0) + for menu in menus: + menu.win.clear() + menu.win.box() + menu.win.addstr(1, 2, menu.name) + for index, row in enumerate(menu.rows): + menu.win.addstr(index + 3, 2, row) + menu.win.addstr(3, 2, menu.rows[menu.row], curses.A_REVERSE | curses.A_ITALIC) + menus[current_menu].win.addstr(1, 2, menus[current_menu].name, curses.A_REVERSE | curses.A_ITALIC) case '\t' | "KEY_RIGHT": menus[current_menu].win.addstr(1, 2, menus[current_menu].name) current_menu = (current_menu + 1) % 3 @@ -112,9 +157,13 @@ def main(stdscr): else: menus[2].win.addstr(index + 3, 2, row) -curses.wrapper(main) +main(stdscr) + +curses.nocbreak() +stdscr.keypad(False) +curses.echo() +curses.endwin() +subprocess.call(["clear"]) + +#curses.wrapper(main) -#curses.nocbreak() -#stdscr.keypad(False) -#curses.echo() -#curses.endwin() diff --git a/tmp.py b/tmp.py new file mode 100644 index 0000000..99789b2 --- /dev/null +++ b/tmp.py @@ -0,0 +1,3 @@ +from subprocess import call + +call("kubectl edit deploy -n kube-system traefik", shell=True)