summaryrefslogtreecommitdiffstats
path: root/sploit/util
diff options
context:
space:
mode:
authorMalfurious <m@lfurio.us>2024-01-12 14:28:26 -0500
committerMalfurious <m@lfurio.us>2024-01-13 17:22:12 -0500
commitead4ec1340555569e00919891383e05dca839b01 (patch)
treebb0187544dfd9ef265e31051775d55135c6198a0 /sploit/util
parent4a39e37e19fe02be9169d8a37ee09190acd09527 (diff)
downloadnsploit-ead4ec1340555569e00919891383e05dca839b01.tar.gz
nsploit-ead4ec1340555569e00919891383e05dca839b01.zip
util: Promote from module to package
We would like to move additional modules under the namespace of "util" to clean up the top-level "sploit" package. To start, the functions from the previous util module are moved. Given the package is named "util" the module is renamed to "cmd" to somewhat match the theme of the contained functions. Per the previous commits, these functions are now exposed via the util package as well. Signed-off-by: Malfurious <m@lfurio.us>
Diffstat (limited to 'sploit/util')
-rw-r--r--sploit/util/__init__.py1
-rw-r--r--sploit/util/cmd.py26
2 files changed, 27 insertions, 0 deletions
diff --git a/sploit/util/__init__.py b/sploit/util/__init__.py
new file mode 100644
index 0000000..9103509
--- /dev/null
+++ b/sploit/util/__init__.py
@@ -0,0 +1 @@
+from .cmd import *
diff --git a/sploit/util/cmd.py b/sploit/util/cmd.py
new file mode 100644
index 0000000..3a2b842
--- /dev/null
+++ b/sploit/util/cmd.py
@@ -0,0 +1,26 @@
+from os import path
+from subprocess import run
+
+def run_cmd(cmd,cwd=None):
+ return run(cmd,cwd=cwd,capture_output=True,text=True,check=True).stdout.split('\n')[:-1]
+
+__RUN_CACHE__ = {}
+def run_cmd_cached(cmd,cwd=None):
+ key = ''.join(cmd)
+ if key in __RUN_CACHE__:
+ return __RUN_CACHE__[key]
+ else:
+ result = run_cmd(cmd,cwd)
+ __RUN_CACHE__[key] = result
+ return result
+
+#try to get the version through git
+def git_version():
+ try:
+ cwd = path.dirname(path.realpath(__file__))
+ version = run_cmd(["git","describe","--always","--first-parent","--dirty"],cwd=cwd)[0]
+ #PEP440 compliance
+ version = version.replace('-','+',1).replace('-','.')
+ return version
+ except:
+ return "0+unknown.version"