summaryrefslogblamecommitdiffstats
path: root/sploit/log.py
blob: 823b252e4da3dd4b9a05dfaa0c9ca111ab704920 (plain) (tree)
1
2
3

             
 




























                                                                                          
import codecs
import sys

# https://docs.python.org/3/library/codecs.html#standard-encodings
ENCODING = None

ERROR   = 31
WARNING = 33
STATUS  = 32
NORMAL  =  0
ALT     = 90

def enc_value(value, enc):
    if type(value) is bytes:
        if enc is not None:
            value = codecs.encode(value, enc)
        elif ENCODING is not None:
            value = codecs.encode(value, ENCODING)
        value = str(value)[2:-1] # strip b''
    return str(value)

def generic_log(*values, sep, end, file, flush, enc, color):
    string = sep.join([ enc_value(x, enc) for x in values ])
    print(f'\033[{color}m{string}\033[0m', end=end, file=file, flush=flush)

# For library internal use
def ilog(*values, sep=' ', end='\n', file=sys.stderr, flush=True, enc=None, color=STATUS):
    generic_log(*values, sep=sep, end=end, file=file, flush=flush, enc=enc, color=color)

# For external use in user script (via print = elog)
def elog(*values, sep=' ', end='\n', file=sys.stdout, flush=True, enc=None, color=ALT):
    generic_log(*values, sep=sep, end=end, file=file, flush=flush, enc=enc, color=color)