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