From: Daan De Meyer Date: Thu, 17 Aug 2023 12:40:23 +0000 (+0200) Subject: Reset terminal cursor if tput is available X-Git-Tag: v16~54 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=19bb5e274d9a9c23891905c4bcbb8f68955a701d;p=thirdparty%2Fmkosi.git Reset terminal cursor if tput is available When interrupting dnf5 or other programs, they sometimes mess up the terminal cursor. So let's make sure we reset the cursor state when we exit mkosi if tput is available. --- diff --git a/mkosi/__main__.py b/mkosi/__main__.py index deb1ebf71..092cd9ab7 100644 --- a/mkosi/__main__.py +++ b/mkosi/__main__.py @@ -3,6 +3,7 @@ import contextlib import logging +import shutil import subprocess import sys from collections.abc import Iterator @@ -10,7 +11,7 @@ from collections.abc import Iterator from mkosi import run_verb from mkosi.config import MkosiConfigParser from mkosi.log import ARG_DEBUG, log_setup -from mkosi.run import ensure_exc_info +from mkosi.run import ensure_exc_info, run @contextlib.contextmanager @@ -46,7 +47,11 @@ def main() -> None: if ARG_DEBUG.get(): logging.getLogger().setLevel(logging.DEBUG) - run_verb(args, presets) + try: + run_verb(args, presets) + finally: + if sys.stderr.isatty() and shutil.which("tput"): + run(["tput", "cnorm"]) if __name__ == "__main__":