Fix paging

This commit is contained in:
Digital Studium 2024-04-07 18:45:35 +03:00
parent d9e8b7b969
commit 2d7410e47c
2 changed files with 46 additions and 5 deletions

50
kls
View File

@ -58,12 +58,12 @@ def main(stdscr):
match key_pressed: match key_pressed:
case 'q': case 'q':
running = False running = False
case 'l': case 'g':
if current_menu == 2 and not menus[2].rows[menus[2].row].startswith("No resources") and menus[1].rows[menus[1].row] == "pods": if current_menu == 2 and not menus[2].rows[menus[2].row].startswith("No resources"):
namespace = menus[0].rows[menus[0].row] namespace = menus[0].rows[menus[0].row]
api_resource = menus[1].rows[menus[1].row] api_resource = menus[1].rows[menus[1].row]
resource = menus[2].rows[menus[2].row] resource = menus[2].rows[menus[2].row]
process = subprocess.call(f"kubectl -n {namespace} logs {resource} | less", shell=True) process = subprocess.call(f"kubectl -n {namespace} get {api_resource} {resource} -o yaml | batcat -l yaml --paging always", shell=True)
stdscr = curses.initscr() stdscr = curses.initscr()
stdscr.refresh() stdscr.refresh()
curses.noecho() curses.noecho()
@ -76,7 +76,47 @@ def main(stdscr):
menu.win.addstr(1, 2, menu.name) menu.win.addstr(1, 2, menu.name)
for index, row in enumerate(menu.rows): for index, row in enumerate(menu.rows):
menu.win.addstr(index + 3, 2, row) menu.win.addstr(index + 3, 2, row)
menu.win.addstr(3, 2, menu.rows[menu.row], curses.A_REVERSE | curses.A_ITALIC) menu.win.addstr(menu.row + 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 'd':
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 -n {namespace} describe {api_resource} {resource} | batcat -l yaml --paging always", 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(menu.row + 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 '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} | batcat -l log --paging always", 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(menu.row + 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) menus[current_menu].win.addstr(1, 2, menus[current_menu].name, curses.A_REVERSE | curses.A_ITALIC)
case 'e': case 'e':
if current_menu == 2 and not menus[2].rows[menus[2].row].startswith("No resources"): if current_menu == 2 and not menus[2].rows[menus[2].row].startswith("No resources"):
@ -96,7 +136,7 @@ def main(stdscr):
menu.win.addstr(1, 2, menu.name) menu.win.addstr(1, 2, menu.name)
for index, row in enumerate(menu.rows): for index, row in enumerate(menu.rows):
menu.win.addstr(index + 3, 2, row) menu.win.addstr(index + 3, 2, row)
menu.win.addstr(3, 2, menu.rows[menu.row], curses.A_REVERSE | curses.A_ITALIC) menu.win.addstr(menu.row + 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) menus[current_menu].win.addstr(1, 2, menus[current_menu].name, curses.A_REVERSE | curses.A_ITALIC)
case '\t' | "KEY_RIGHT": case '\t' | "KEY_RIGHT":
menus[current_menu].win.addstr(1, 2, menus[current_menu].name) menus[current_menu].win.addstr(1, 2, menus[current_menu].name)

1
test Normal file
View File

@ -0,0 +1 @@
test