diff src/core/sat_main.py @ 1375:3a20312d4012

core: if we are in dev version and it's possible, repository data are now checked and added to SàT version
author Goffi <goffi@goffi.org>
date Thu, 19 Mar 2015 19:47:01 +0100
parents 0befb14ecf62
children 28fd9e838f8f
line wrap: on
line diff
--- a/src/core/sat_main.py	Thu Mar 19 19:44:37 2015 +0100
+++ b/src/core/sat_main.py	Thu Mar 19 19:47:01 2015 +0100
@@ -33,6 +33,7 @@
 from sat.memory.memory import Memory
 from sat.memory.crypto import PasswordHasher
 from sat.tools import trigger
+from sat.tools import utils
 from sat.stdui import ui_contact_list, ui_profile_manager
 from glob import glob
 from uuid import uuid4
@@ -46,6 +47,7 @@
 
 
 sat_id = 0
+__version__ = C.APP_VERSION
 
 
 def sat_next_id():
@@ -57,9 +59,24 @@
 class SAT(service.Service):
 
     @property
-    def __version__(self):
+    def version(self):
+        """Return the short version of SàT"""
         return C.APP_VERSION
 
+    @property
+    def full_version(self):
+        """Return the full version of SàT (with extra data when in development mode)"""
+        version = self.version
+        if version[-1] == 'D':
+            # we are in debug version, we add extra data
+            try:
+                return self._version_cache
+            except AttributeError:
+                self._version_cache = u"{} ({})".format(version, utils.getRepositoryData())
+                return self._version_cache
+        else:
+            return version
+
     def get_next_id(self):
         return sat_next_id()
 
@@ -80,7 +97,7 @@
             log.error(u"Bridge can't be initialised, can't start SàT core")
             sys.exit(1)
         self.bridge.register("getReady", lambda: self._initialised)
-        self.bridge.register("getVersion", lambda: C.APP_VERSION)
+        self.bridge.register("getVersion", lambda: self.full_version)
         self.bridge.register("getProfileName", self.memory.getProfileName)
         self.bridge.register("getProfilesList", self.memory.getProfilesList)
         self.bridge.register("getEntityData", lambda jid_, keys, profile: self.memory.getEntityData(jid.JID(jid_), keys, profile))
@@ -253,7 +270,7 @@
         current.fallBack.setHandlerParent(current)
 
         current.versionHandler = xmpp.SatVersionHandler(C.APP_NAME_FULL,
-                                                        C.APP_VERSION)
+                                                        self.full_version)
         current.versionHandler.setHandlerParent(current)
 
         current.identityHandler = xmpp.SatIdentityHandler()