summaryrefslogtreecommitdiffstats
path: root/sploit/util/log.py
diff options
context:
space:
mode:
authorMalfurious <m@lfurio.us>2024-01-12 16:26:03 -0500
committerMalfurious <m@lfurio.us>2024-01-13 17:22:12 -0500
commit074a15310b8bbeeeeb00bf5ab5877c12f1ca1861 (patch)
tree606b9245259bb130323dd00314a80c0d3689d5a4 /sploit/util/log.py
parentead4ec1340555569e00919891383e05dca839b01 (diff)
downloadnsploit-074a15310b8bbeeeeb00bf5ab5877c12f1ca1861.tar.gz
nsploit-074a15310b8bbeeeeb00bf5ab5877c12f1ca1861.zip
log: Move to sploit.util package
Signed-off-by: Malfurious <m@lfurio.us>
Diffstat (limited to 'sploit/util/log.py')
-rw-r--r--sploit/util/log.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/sploit/util/log.py b/sploit/util/log.py
new file mode 100644
index 0000000..823b252
--- /dev/null
+++ b/sploit/util/log.py
@@ -0,0 +1,32 @@
+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)