1
0
Fork 0
mirror of https://github.com/yavook/kiwi-scp.git synced 2024-11-22 21:03:00 +00:00
kiwi-scp/src/kiwi/subcommands/logs.py

41 lines
1.2 KiB
Python
Raw Normal View History

2020-08-12 15:46:50 +00:00
# local
from ._subcommand import ServiceCommand
2020-08-12 14:43:13 +00:00
from .utils.dockercommand import DockerCommand
class LogsCommand(ServiceCommand):
2020-08-17 08:08:29 +00:00
"""kiwi logs"""
def __init__(self):
super().__init__(
'logs', num_projects=1, num_services='*',
action="Showing logs of",
2020-08-11 10:33:21 +00:00
description="Show logs of a project or service(s) of a project"
2020-08-10 14:36:05 +00:00
)
# -f switch: Follow logs
2020-08-11 12:03:00 +00:00
self._sub_parser.add_argument(
2020-08-10 15:40:56 +00:00
'-f', '--follow', action='store_true',
2020-08-10 14:36:05 +00:00
help="output appended data as log grows"
2020-08-10 09:24:39 +00:00
)
def _run_services(self, runner, args, project, services):
2020-08-13 12:26:49 +00:00
# include timestamps
compose_cmd = ['logs', '-t']
# handle following the log output
2020-08-11 12:03:00 +00:00
if args.follow:
2020-08-13 12:26:49 +00:00
compose_cmd = [*compose_cmd, '-f', '--tail=10']
2020-08-10 14:36:05 +00:00
2020-08-13 12:26:49 +00:00
# append if one or more services are given
if services:
2020-08-13 12:26:49 +00:00
compose_cmd = [*compose_cmd, *args.services]
2020-08-13 09:34:30 +00:00
2020-08-13 12:26:49 +00:00
# use 'less' viewer if output will be static
if args.follow:
DockerCommand('docker-compose').run(project, compose_cmd)
2020-08-13 12:26:49 +00:00
else:
DockerCommand('docker-compose').run_less(project, compose_cmd)
2020-08-17 13:00:05 +00:00
return True