From 6e59af0c19ca13ecae8e877e8d679c07747006cc Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 6 Jul 2018 13:42:38 -0400 Subject: [PATCH] Expose nicely --- config.json | 1 + libremanage | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 61f0580..a1105b1 100644 --- a/config.json +++ b/config.json @@ -3,6 +3,7 @@ "web2": { "manager": "myboard", "tty": { + "uncolor": true, "file": "/dev/ttyUSB0", "baud": 115200 }, diff --git a/libremanage b/libremanage index 51bb8e2..c47c4a6 100755 --- a/libremanage +++ b/libremanage @@ -68,6 +68,9 @@ def get_server_handle(name): # Associate manager configuration server["ssh"] = CONFIG["managers"][server["manager"]] + # Meta access + server["name"] = name + return server def gpio_export(server, pin, mode): @@ -112,6 +115,14 @@ def set_server_power(state, server): gpio_export(server, pin, False) +def open_tty(s): + if s["tty"]["uncolor"]: + # Broken serial port, workaround TTY garbage with libremanage-serial + subprocess.run(["libremanage-serial", s["name"]) + else: + # Use native GNU screen + return open_ssh(s, "screen " + s["tty"]["file"] + " " + str(s["tty"]["baud"]), force_tty=True), + COMMANDS = { # Power managemment @@ -121,7 +132,7 @@ COMMANDS = { # TTY access (or keyboard if wired as such) - "tty": lambda s: open_ssh(s, "screen " + s["tty"]["file"] + " " + str(s["tty"]["baud"]), force_tty=True), + "tty": open_tty, "tty-baud": lambda s: open_ssh(s, "stty -F "+ s["tty"]["file"] + " " + str(s["tty"]["baud"])), "tty-read": lambda s: open_ssh(s, "cat " + s["tty"]["file"], force_tty=True), "tty-write": lambda s: open_ssh(s, "stdbuf -o0 cat > " + s["tty"]["file"], force_tty=True), -- 2.25.1