Files @ 230748e76f53
Branch filter:

Location: light9/light9/run_local.py

drewp@bigasterisk.com
reformat logs, set term bg color
# bootstrap

import logging
import os
import socket
import sys
from colorsys import hsv_to_rgb

import coloredlogs

try:
    import faulthandler
    faulthandler.enable()
except ImportError:
    pass

if 0:
    from IPython.core import ultratb
    sys.excepthook = ultratb.FormattedTB(mode='Verbose', color_scheme='Linux', call_pdb=1)

progName = sys.argv[0].split('/')[-1]
log = logging.getLogger()  # this has to get the root logger
log.name = progName  # but we can rename it for clarity

coloredlogs.install(
    level='DEBUG',
    milliseconds=True,
    datefmt='t=%H:%M:%S',
    fmt='%(asctime)s.%(msecs)03d %(levelname)1.1s %(name)s %(message)s',
    # try `pdm run humanfriendly --demo`
    field_styles=dict(
        asctime=dict(color=30),
        levelname=dict(color=247),
        name=dict(color='blue'),
    ),
    level_styles={
        'debug': dict(color=115),
        'info': dict(color=250),
        'warning': dict(color=208),
        'error': dict(color=161),
        'critical': dict(color=196),
    },
)


def setTerminalTitle(s):
    if os.environ.get('TERM', '') in ['xterm', 'rxvt', 'rxvt-unicode-256color']:
        print("\033]0;%s\007" % s)  # not escaped/protected correctly
        hue = (hash(progName) % 255) / 255
        r, g, b = [int(x * 255) for x in hsv_to_rgb(hue, s=.2, v=.1)]
        print(f"\033]11;#{r:02x}{g:02x}{b:02x}\007")


if 'listsongs' not in sys.argv[0] and 'homepageConfig' not in sys.argv[0]:
    setTerminalTitle('[%s] %s' % (socket.gethostname(), ' '.join(sys.argv).replace('bin/', '')))

# see http://www.youtube.com/watch?v=3cIOT9kM--g for commands that make
# profiles and set background images