diff options
author | Malfurious <m@lfurio.us> | 2025-01-01 06:51:10 -0500 |
---|---|---|
committer | Malfurious <m@lfurio.us> | 2025-01-01 06:51:10 -0500 |
commit | f01ec45e773291c3659a1dcaf8cd9a51ece19823 (patch) | |
tree | 0db3ef432a6f3b06c07060bdb0dd61c7fd164ad2 /sploit/util/cmd.py | |
parent | 3f5532857807d628a5dadaf5c30a384f873878ea (diff) | |
parent | 221742f7c5c89dc50ec4374bed5d2ccc0d7534bf (diff) | |
download | nsploit-f01ec45e773291c3659a1dcaf8cd9a51ece19823.tar.gz nsploit-f01ec45e773291c3659a1dcaf8cd9a51ece19823.zip |
Merge branch 'pkg-reorg'
This branch is a rework of nsploit's intended package imports. User
scripts need only import a given nsploit subpackage to obtain that
package's full collection of classes, functions, etc. This is the new
intended style for exploit scripts.
Along the way, some modules are reorganized into different packages, the
"builder" package is renamed to "payload", and some unnecessary files
are consolidated.
* pkg-reorg:
main: Automatically provide top-level sploit modules to user scripts
sploit: Expose modules' contents through package
Remove extra "main.py" file
comm: Promote from module to package
log: Move to sploit.util package
util: Promote from module to package
builder: Rename package to payload and expose contents
rev: Expose modules' contents through package
Remove outer __init__.py file
Diffstat (limited to 'sploit/util/cmd.py')
-rw-r--r-- | sploit/util/cmd.py | 26 |
1 files changed, 26 insertions, 0 deletions
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" |