Force writing errors/output to file in case of frozen distributive

This commit is contained in:
DarkPhoenix
2015-05-01 15:08:14 +03:00
parent 2180b1ac3b
commit 68d504c79d
2 changed files with 17 additions and 10 deletions

View File

@@ -29,17 +29,16 @@ staticPath = None
saveDB = None
gameDB = None
# TODO: move back to pyfa.py main loop
# We moved it here just to avoid rebuilding windows skeleton for now (any change to pyfa.py needs it)
import logging
logging.basicConfig()
def isFrozen():
if hasattr(sys, 'frozen'):
return True
else:
return False
def getPyfaRoot():
if hasattr(sys, 'frozen'):
base = sys.executable
else:
base = sys.argv[0]
base = sys.executable if isFrozen() else sys.argv[0]
root = os.path.dirname(os.path.realpath(os.path.abspath(base)))
root = unicode(root, sys.getfilesystemencoding())
return root
@@ -71,6 +70,8 @@ def defPaths():
# Redirect stderr to file if we're requested to do so
stderrToFile = getattr(configforced, "stderrToFile", None)
if stderrToFile is None:
stderrToFile = True if isFrozen() else False
if stderrToFile is True:
if not os.path.exists(savePath):
os.mkdir(savePath)
@@ -78,6 +79,8 @@ def defPaths():
# Same for stdout
stdoutToFile = getattr(configforced, "stdoutToFile", None)
if stdoutToFile is None:
stdoutToFile = True if isFrozen() else False
if stdoutToFile is True:
if not os.path.exists(savePath):
os.mkdir(savePath)

View File

@@ -33,7 +33,7 @@ if not hasattr(sys, 'frozen'):
except ImportError:
print("Cannot find wxPython\nYou can download wxPython (2.8+) from http://www.wxpython.org/")
sys.exit(1)
# if user wants to force 2.8, try that and go directly to ensureMinimal path if fails
try:
if getattr(config.configforced, "force28", False):
@@ -51,7 +51,7 @@ if not hasattr(sys, 'frozen'):
print "Installed wxPython version doesn't meet requirements.\nYou can download wxPython (2.8+) from http://www.wxpython.org/"
sys.exit(1)
else:
print "wxPython 2.8 not found; attempting to use newer version, expect errors"
print "wxPython 2.8 not found; attempting to use newer version, expect errors"
try:
import sqlalchemy
@@ -87,6 +87,10 @@ if __name__ == "__main__":
config.saveInRoot = True
config.defPaths()
# Basic logging initialization
import logging
logging.basicConfig()
# Import everything
import wx
import os