Skip to content

Instantly share code, notes, and snippets.

@torives
Forked from omaraboumrad/splitlogs.py
Last active January 21, 2022 20:30
Show Gist options
  • Select an option

  • Save torives/dd22bcf4d2792a5aea1493d9c89abd84 to your computer and use it in GitHub Desktop.

Select an option

Save torives/dd22bcf4d2792a5aea1493d9c89abd84 to your computer and use it in GitHub Desktop.
View docker-compose services logs in split tmux panes
# Requires pyyaml
import os
import yaml
run = os.system
new_window = lambda cmd: run('tmux new-window -n "logs" "{}"'.format(cmd))
split_vertical = lambda cmd: run('tmux split-window "{}"'.format(cmd))
split_horizontal = lambda cmd: run('tmux split-window -h "{}"'.format(cmd))
even_vertical = lambda: run('tmux select-layout even-vertical')
if __name__ == '__main__':
try:
config_text = open('docker-compose.yaml').read()
except IOError:
config_text = open('docker-compose.yml').read()
config = yaml.load(config_text, Loader=yaml.SafeLoader)
services = list(config['services'].keys())
new_window('docker-compose logs -f {}'.format(services[0]))
for service in services[1:]:
split_horizontal('docker-compose logs -f {}'.format(service))
even_vertical()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment