2014-10-27 16:29:04 -06:00
# -*- coding: utf-8 -*-
2015-02-28 08:31:19 -06:00
import sys
import os
#redirect the original stdout and stderr
stdout = sys . stdout
stderr = sys . stderr
sys . stdout = open ( os . path . join ( os . getenv ( " temp " ) , " stdout.log " ) , " w " )
sys . stderr = open ( os . path . join ( os . getenv ( " temp " ) , " stderr.log " ) , " w " )
2014-11-12 20:41:29 -06:00
import languageHandler
2014-10-27 16:29:04 -06:00
import wx
import paths
import commandline
2014-11-12 20:41:29 -06:00
import config
import sound
import output
2015-01-19 12:15:57 -06:00
from logger import logger
import logging
import platform
import application
2015-02-04 17:00:03 -06:00
import keys
2015-01-27 17:09:28 -06:00
from mysc . thread_utils import call_threaded
2015-02-22 11:38:22 -06:00
from update import updater
2015-02-22 18:45:26 -06:00
import fixes
2015-02-28 08:31:19 -06:00
#extra variables to control the temporal stdout and stderr, while the final files are opened. We understand that some errors could happen while all outputs are closed, so let's try to avoid it.
stdout_temp = sys . stdout
stderr_temp = sys . stderr
#if it's a binary version
if hasattr ( sys , ' frozen ' ) :
sys . stderr = open ( paths . logs_path ( " stderr.log " ) , ' w ' )
sys . stdout = open ( paths . logs_path ( " stdout.log " ) , ' w ' )
else :
sys . stdout = stdout
sys . stderr = stderr
#the final log files have been opened succesfully, let's close the temporal files
stdout_temp . close ( )
stderr_temp . close ( )
#finally, remove the temporal files. TW Blue doesn't need them anymore, and we will get more free space on the harddrive
os . remove ( stdout_temp . name )
os . remove ( stderr_temp . name )
2015-01-19 12:15:57 -06:00
log = logging . getLogger ( " main " )
2014-11-12 20:41:29 -06:00
def setup ( ) :
2015-01-19 12:15:57 -06:00
log . debug ( " Starting TWBlue %s " % ( application . version , ) )
2014-11-12 20:41:29 -06:00
config . setup ( )
2015-01-19 12:15:57 -06:00
log . debug ( " Using %s %s " % ( platform . system ( ) , platform . architecture ( ) [ 0 ] ) )
log . debug ( " Application path is %s " % ( paths . app_path ( ) , ) )
2015-02-22 11:38:22 -06:00
log . debug ( " config path is %s " % ( paths . config_path ( ) , ) )
2014-11-12 20:41:29 -06:00
sound . setup ( )
output . setup ( )
languageHandler . setLanguage ( config . app [ " app-settings " ] [ " language " ] )
2015-02-04 17:00:03 -06:00
keys . setup ( )
2014-11-12 20:41:29 -06:00
from controller import mainController
from sessionmanager import sessionManager
app = wx . App ( )
2015-02-22 11:38:22 -06:00
updater . do_update ( )
2014-11-12 20:41:29 -06:00
sm = sessionManager . sessionManagerController ( )
sm . fill_list ( )
if len ( sm . sessions ) == 0 : sm . show ( )
else :
sm . do_ok ( )
del sm
2015-02-22 18:45:26 -06:00
fixes . setup ( )
2014-11-12 20:41:29 -06:00
r = mainController . Controller ( )
r . view . Show ( )
2015-01-27 17:09:28 -06:00
r . do_work ( )
2015-03-09 15:55:34 -06:00
r . check_invisible_at_startup ( )
2015-01-27 17:09:28 -06:00
call_threaded ( r . start )
2014-11-12 20:41:29 -06:00
app . MainLoop ( )
setup ( )