diff --git a/zenmap/install_scripts/windows/boot_script.py b/zenmap/install_scripts/windows/boot_script.py new file mode 100644 index 000000000..db0be734d --- /dev/null +++ b/zenmap/install_scripts/windows/boot_script.py @@ -0,0 +1,27 @@ +# Custom py2exe boot script + +# This runs after py2exe's boot_common.py. That file overrides sys.stderr and +# sys.stdout to write to a logfile and a black hole, respectively. The location +# for the stderr logfile is sys.executable + '.log', though, which is not +# usually writable. We'll change it here to write to some other writable path. + + +import sys +import os +import os.path + + +#sys.stderr.write("Enter boot_script\n") +# Only do this if py2exe installed its Stderr object +if sys.stderr.__class__.__name__ == "Stderr": + logdir = os.environ.get("LOCALAPPDATA", + os.environ.get("APPDATA", + os.environ.get("TEMP", ""))) + + if sys.stderr._file is not None: + sys.stderr._file.close() + sys.stderr._file = open(os.path.join(logdir, "zenmap.exe.log"), 'a') + + +del os +del sys diff --git a/zenmap/setup.py b/zenmap/setup.py index a3e7aaf9b..3cc9b7c97 100755 --- a/zenmap/setup.py +++ b/zenmap/setup.py @@ -604,7 +604,8 @@ if 'py2exe' in sys.argv: "includes": ["pango", "atk", "gobject", "gio", "pickle", "bz2", "encodings", "encodings.*", "cairo", "pangocairo"], "dll_excludes": ["USP10.dll", "NSI.dll", "MSIMG32.dll", - "DNSAPI.dll"] + "DNSAPI.dll"], + "custom_boot_script": "install_scripts/windows/boot_script.py", } } }