Files
picard/scripts/picard.py2exe.in

46 lines
1.7 KiB
Python

#!/usr/bin/env python
import sys
import os.path
# Redirect the error log of py2exe to the user directory.
# This implementation is based on py2exe/boot_common.py, see
# http://www.py2exe.org/index.cgi/StderrLog for more information.
class Stderr(object):
softspace = 0
_file = None
_error = None
def write(self, text):
if self._file is None and self._error is None:
appdatadir = os.environ.get("APPDATA", "~\\Application Data")
fname = os.path.join(os.path.expanduser(appdatadir), "MusicBrainz", \
"Picard", os.path.basename(sys.executable) + '.log')
try:
self._file = open(fname, 'a')
except Exception, details:
self._error = details
import atexit
atexit.register(self._show_messagebox_on_exit, "Errors occurred"
"The logfile '%%s' could not be opened:\n %%s" %% \
(fname, details))
else:
import atexit
atexit.register(self._show_messagebox_on_exit, "Errors occurred",
"See the logfile '%%s' for details" %% fname)
if self._file is not None:
self._file.write(text)
self._file.flush()
def flush(self):
if self._file is not None:
self._file.flush()
def _show_messagebox_on_exit(self, title, message):
from PyQt4.QtGui import QApplication, QMessageBox
QApplication(sys.argv)
QMessageBox.warning(None, title, message)
sys.stderr = Stderr()
del Stderr
from picard.tagger import main
basedir = os.path.dirname(sys.argv[0])
main(os.path.join(basedir, 'locale'), True)