diff --git a/python-installer/oginstaller.py b/python-installer/oginstaller.py index 7494e80..dc305bb 100755 --- a/python-installer/oginstaller.py +++ b/python-installer/oginstaller.py @@ -6,8 +6,6 @@ from git import Repo CONFIGS_DIR = "/tmp/oginstall" os.makedirs(CONFIGS_DIR, exist_ok=True) - -# Uso ogCore para obtener ellistado de tags REPO_URL = "https://ognproject.evlt.uma.es/gitea/opengnsys/ogcore.git" def get_git_tags(): @@ -36,7 +34,6 @@ def get_password(stdscr, y, x, prompt, default=""): password = "" masked_password = "" - # Mostrar prompt sin enmascarar el valor predeterminado hasta que el usuario comience a escribir stdscr.move(y, x + len(prompt)) # Coloca el cursor después del prompt while True: @@ -60,6 +57,10 @@ def get_password(stdscr, y, x, prompt, default=""): return password def get_input(stdscr, y, x, prompt, default=""): + max_y, max_x = stdscr.getmaxyx() + if x + len(prompt) >= max_x: + raise ValueError("El prompt es demasiado largo para caber en la pantalla.") + stdscr.addstr(y, x, prompt, curses.color_pair(1)) input_text = "" prompt_end_x = x + len(prompt) # Calcula la posición final del prompt @@ -79,13 +80,13 @@ def get_input(stdscr, y, x, prompt, default=""): input_text = default break elif 32 <= key <= 126: # Rango de caracteres imprimibles - input_text += chr(key) - stdscr.addstr(y, prompt_end_x, input_text) # Muestra el texto actualizado - stdscr.move(y, prompt_end_x + len(input_text)) # Mueve el cursor al final del texto + if prompt_end_x + len(input_text) < max_x - 1: + input_text += chr(key) + stdscr.addstr(y, prompt_end_x, input_text) # Muestra el texto actualizado + stdscr.move(y, prompt_end_x + len(input_text)) # Mueve el cursor al final del texto return input_text - def main(stdscr): # Inicializar colores curses.start_color()