Commit 94f6b9bb by devttys0

Added option for specifying a custom output directory

parent f2ce2992
...@@ -56,6 +56,11 @@ class Extractor(Module): ...@@ -56,6 +56,11 @@ class Extractor(Module):
type=int, type=int,
kwargs={'matryoshka' : 0}, kwargs={'matryoshka' : 0},
description='Limit matryoshka recursion depth (default: 8 levels deep)'), description='Limit matryoshka recursion depth (default: 8 levels deep)'),
Option(short='C',
long='directory',
type=str,
kwargs={'base_directory' : 0},
description='Extract files/folders to a custom directory (default: current working directory)'),
Option(short='j', Option(short='j',
long='size', long='size',
type=int, type=int,
...@@ -73,6 +78,7 @@ class Extractor(Module): ...@@ -73,6 +78,7 @@ class Extractor(Module):
KWARGS = [ KWARGS = [
Kwarg(name='max_size', default=None), Kwarg(name='max_size', default=None),
Kwarg(name='base_directory', default=None),
Kwarg(name='remove_after_execute', default=False), Kwarg(name='remove_after_execute', default=False),
Kwarg(name='load_default_rules', default=False), Kwarg(name='load_default_rules', default=False),
Kwarg(name='run_extractors', default=True), Kwarg(name='run_extractors', default=True),
...@@ -336,7 +342,12 @@ class Extractor(Module): ...@@ -336,7 +342,12 @@ class Extractor(Module):
# Make sure we put the initial extracted file in the CWD # Make sure we put the initial extracted file in the CWD
if self.directory is None: if self.directory is None:
if self.base_directory is None:
basedir = os.getcwd() basedir = os.getcwd()
else:
basedir = self.base_directory
if not os.path.exists(basedir):
os.mkdir(basedir)
outdir = os.path.join(basedir, '_' + basename) outdir = os.path.join(basedir, '_' + basename)
output_directory = unique_file_name(outdir, extension='extracted') output_directory = unique_file_name(outdir, extension='extracted')
...@@ -353,7 +364,6 @@ class Extractor(Module): ...@@ -353,7 +364,6 @@ class Extractor(Module):
if self.directory is None: if self.directory is None:
self.directory = os.path.realpath(output_directory) + os.path.sep self.directory = os.path.realpath(output_directory) + os.path.sep
return output_directory return output_directory
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment