From cc0c837a9f107fc34d7340ba1fed15afbf7ec896 Mon Sep 17 00:00:00 2001 From: Filippo Cremonese <filippocremonese@rev.ng> Date: Thu, 15 Oct 2020 16:47:16 +0200 Subject: [PATCH] Set terminal title when executing jobs --- orchestra/executor.py | 6 +++++- orchestra/util.py | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/orchestra/executor.py b/orchestra/executor.py index b485b5a..02c464d 100644 --- a/orchestra/executor.py +++ b/orchestra/executor.py @@ -5,6 +5,7 @@ import enlighten from loguru import logger from .actions.action import Action +from .util import set_terminal_title class Executor: @@ -33,14 +34,17 @@ class Executor: status_bar.color = "bright_white_on_lightslategray" while self._running_actions: + running_jobs_str = ", ".join(a.name_for_graph for a in self._running_actions.values()) status_bar_args = { - "jobs": ", ".join(a.name_for_graph for a in self._running_actions.values()), + "jobs": running_jobs_str, "current": total_pending - len(self._pending_actions), "total": total_pending, } + set_terminal_title(f"Running {running_jobs_str}") status_bar.status_format = "[{current}/{total}] Running {jobs}" status_bar.update(**status_bar_args) status_bar.refresh() + done, not_done = futures.wait(self._running_actions, return_when=futures.FIRST_COMPLETED) for d in done: action = self._running_actions[d] diff --git a/orchestra/util.py b/orchestra/util.py index 7c1fe2e..8d9eb52 100644 --- a/orchestra/util.py +++ b/orchestra/util.py @@ -1,6 +1,7 @@ import json import os.path import re +import sys from collections import OrderedDict from typing import Union @@ -97,3 +98,8 @@ def export_environment(variables: OrderedDict): for var, val in variables.items(): env += f'export {var}="{val}"\n' return env + + +def set_terminal_title(title): + if sys.stdout.isatty(): + sys.stdout.write(f"\x1b]2;{title}\x07") -- GitLab