eoptasks: add moonlight progress indicator
(this keeps a window always open, so hacks to handle final serial processes are removed)
This commit is contained in:
parent
5bc48833dd
commit
1f70d4830c
|
@ -116,9 +116,11 @@ cmd = {
|
|||
}.get(args.cmd, args.cmd)
|
||||
|
||||
tmux_session_name = 's%s' % random.randrange(1000)
|
||||
os.system('tmux new-session -s %s -d /bin/bash -c "sleep 2"' % tmux_session_name)
|
||||
os.system('tmux new-session -s %s -n 🌑 -d /bin/bash -c "sleep 2h"' % tmux_session_name)
|
||||
tmux = libtmux.Server()
|
||||
session = tmux.find_where({'session_name': tmux_session_name})
|
||||
status_window = session.attached_window
|
||||
status_window.attached_pane.send_keys('eoptasks\n ', enter=False)
|
||||
|
||||
pid = os.fork()
|
||||
if pid:
|
||||
|
@ -128,6 +130,7 @@ else:
|
|||
return re.match(r'(.*?)(\d*)$', server_name).group(1).replace(
|
||||
'.rbx.', '.loc.').replace('.gra.', '.loc.').replace('.sbg.', '.loc.')
|
||||
|
||||
total_number = len(selected_servers)
|
||||
random.shuffle(selected_servers)
|
||||
while selected_servers:
|
||||
current_clusters = [cluster_name(x.name) for x in session.list_windows()]
|
||||
|
@ -142,11 +145,17 @@ else:
|
|||
break
|
||||
else:
|
||||
time.sleep(0.1)
|
||||
if len(session.list_windows()) == 1:
|
||||
# a single window remains but there are still unparallelizable
|
||||
# servers to process, create temporary tmux window to avoid tmux
|
||||
# being destroyed as the last window process is over.
|
||||
session.new_window(attach=False, window_name='sleep',
|
||||
window_shell='/bin/bash -c "sleep 2"')
|
||||
while len(session.list_windows()) > 5:
|
||||
time.sleep(0.1)
|
||||
percentage = len(selected_servers) / total_number
|
||||
if percentage == 1:
|
||||
status_window.rename_window('🌕')
|
||||
elif percentage >= 0.75:
|
||||
status_window.rename_window('🌔')
|
||||
elif percentage >= 0.5:
|
||||
status_window.rename_window('🌓')
|
||||
elif percentage >= 0.25:
|
||||
status_window.rename_window('🌒')
|
||||
while len(session.list_windows()) > 1:
|
||||
time.sleep(0.1)
|
||||
status_window.kill_window()
|
||||
|
|
Loading…
Reference in New Issue