mirror of
https://github.com/fergalmoran/picard.git
synced 2025-12-23 09:48:03 +00:00
46 lines
1.7 KiB
Python
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)
|
|
|