Add a global debug function to the kittens

This commit is contained in:
Kovid Goyal 2018-05-06 13:48:40 +05:30
parent 5b58c2892d
commit d61086907d
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 13 additions and 3 deletions

View File

@ -42,6 +42,14 @@ def create_kitten_handler(kitten, orig_args):
return partial(m['end'], [kitten] + orig_args)
def set_debug(kitten):
from kittens.tui.loop import debug
path = os.path.join('/tmp', 'kitten-' + kitten)
debug.fd = open(path, 'w')
import builtins
builtins.debug = debug
def launch(args):
config_dir, kitten = args[:2]
kitten = resolved_kitten(kitten)
@ -49,6 +57,7 @@ def launch(args):
args = [kitten] + args
os.environ['KITTY_CONFIG_DIRECTORY'] = config_dir
from kittens.tui.operations import clear_screen, reset_mode
set_debug(kitten)
m = import_kitten_main_module(config_dir, kitten)
try:
result = m['start'](args)
@ -73,6 +82,7 @@ def deserialize(output):
def run_kitten(kitten):
import runpy
kitten = resolved_kitten(kitten)
set_debug(kitten)
runpy.run_module('kittens.{}.main'.format(kitten), run_name='__main__')

View File

@ -28,10 +28,10 @@
from .operations import clear_screen, init_state, reset_state
def log(*a, **kw):
fd = getattr(log, 'fd', None)
def debug(*a, **kw):
fd = getattr(debug, 'fd', None)
if fd is None:
fd = log.fd = open('/tmp/kitten-debug', 'w')
fd = debug.fd = open('/tmp/kitten-debug', 'w')
kw['file'] = fd
print(*a, **kw)
fd.flush()