Bump to 1.0.5
[watersofshiloah] / src / watersofshiloah_gtk.py
index 5f442f9..94c2121 100755 (executable)
@@ -10,6 +10,7 @@ from __future__ import with_statement
 import os
 import gc
 import logging
+import logging.handlers
 import ConfigParser
 
 import gobject
@@ -18,7 +19,8 @@ import dbus.mainloop.glib
 import gtk
 
 try:
-       import osso
+       import osso as _osso
+       osso = _osso
 except ImportError:
        osso = None
 
@@ -41,7 +43,10 @@ class WatersOfShiloahProgram(hildonize.get_app_class()):
        def __init__(self):
                super(WatersOfShiloahProgram, self).__init__()
                currentPath = os.path.abspath(__file__)
-               storePath = os.path.join(os.path.split(os.path.dirname(currentPath))[0], "data")
+               for dirName in ["share", "data"]:
+                       storePath = os.path.join(os.path.split(os.path.dirname(currentPath))[0], dirName)
+                       if os.path.isdir(storePath):
+                               break
                self._store = imagestore.ImageStore(storePath, constants._cache_path_)
                self._index = stream_index.AudioIndex()
                self._player = player.Player(self._index)
@@ -139,6 +144,29 @@ class WatersOfShiloahProgram(hildonize.get_app_class()):
 
 
 def run():
+       try:
+               os.makedirs(constants._data_path_)
+       except OSError, e:
+               if e.errno != 17:
+                       raise
+
+       try:
+               os.makedirs(constants._cache_path_)
+       except OSError, e:
+               if e.errno != 17:
+                       raise
+
+       logFormat = '(%(relativeCreated)5d) %(levelname)-5s %(threadName)s.%(name)s.%(funcName)s: %(message)s'
+       logging.basicConfig(level=logging.DEBUG, format=logFormat)
+       rotating = logging.handlers.RotatingFileHandler(constants._user_logpath_, maxBytes=512*1024, backupCount=1)
+       rotating.setFormatter(logging.Formatter(logFormat))
+       root = logging.getLogger()
+       root.addHandler(rotating)
+       _moduleLogger.info("%s %s-%s" % (constants.__app_name__, constants.__version__, constants.__build__))
+       _moduleLogger.info("OS: %s" % (os.uname()[0], ))
+       _moduleLogger.info("Kernel: %s (%s) for %s" % os.uname()[2:])
+       _moduleLogger.info("Hostname: %s" % os.uname()[1])
+
        gobject.threads_init()
        gtk.gdk.threads_init()
        l = dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)