From 7ade29748f268fd363b2e64564b94646d40a9092 Mon Sep 17 00:00:00 2001 From: Andrew Snyder Date: Thu, 16 Dec 2021 09:05:21 -0500 Subject: [PATCH 1/2] add options for dump_out directory --- emrun.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/emrun.py b/emrun.py index a3aea11..036e725 100755 --- a/emrun.py +++ b/emrun.py @@ -692,12 +692,11 @@ def do_POST(self): # "stdio.html?file=filename" will write binary data to the given file. data = self.rfile.read(int(self.headers['Content-Length'])) filename = query[len('file='):] - dump_out_directory = 'dump_out' try: - os.mkdir(dump_out_directory) + os.mkdir(emrun_options.dump_out_directory) except OSError: pass - filename = os.path.join(dump_out_directory, os.path.normpath(filename)) + filename = os.path.join(emrun_options.dump_out_directory, os.path.normpath(filename)) open(filename, 'wb').write(data) logi('Wrote ' + str(len(data)) + ' bytes to file "' + filename + '".') have_received_messages = True @@ -1574,6 +1573,9 @@ def run(): parser.add_argument('--private_browsing', action='store_true', help='If specified, opens browser in private/incognito mode.') + + parser.add_argument('--dump_out_directory', default='dump_out', type=str, + help='If specified, overrides the directory for dump files using emrun_file_dump method.') parser.add_argument('serve', nargs='?', default='') From fe985eed1b1ececd3d194da5284b3a2256b1563c Mon Sep 17 00:00:00 2001 From: Andrew Snyder Date: Thu, 16 Dec 2021 09:10:33 -0500 Subject: [PATCH 2/2] fix issues --- emrun.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/emrun.py b/emrun.py index 036e725..57c30ed 100755 --- a/emrun.py +++ b/emrun.py @@ -691,12 +691,12 @@ def do_POST(self): # Binary file dump/upload handling. Requests to # "stdio.html?file=filename" will write binary data to the given file. data = self.rfile.read(int(self.headers['Content-Length'])) - filename = query[len('file='):] + filename = unquote_u(query[len('file='):]) + filename = os.path.join(emrun_options.dump_out_directory, os.path.normpath(filename)) try: - os.mkdir(emrun_options.dump_out_directory) + os.makedirs(os.path.dirname(filename)) except OSError: pass - filename = os.path.join(emrun_options.dump_out_directory, os.path.normpath(filename)) open(filename, 'wb').write(data) logi('Wrote ' + str(len(data)) + ' bytes to file "' + filename + '".') have_received_messages = True