[meld] meld.conf: Treat frozen installs differently as layouts will change



commit 7825fdd5bc98277a02d2e4dd9aa33c1e650c041a
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Tue Mar 18 05:50:15 2014 +1000

    meld.conf: Treat frozen installs differently as layouts will change

 bin/meld     |    2 ++
 meld/conf.py |   15 +++++++++++++++
 2 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/bin/meld b/bin/meld
index 893e06c..25d13bd 100755
--- a/bin/meld
+++ b/bin/meld
@@ -74,6 +74,8 @@ import meld.conf
 
 if uninstalled:
     meld.conf.uninstalled()
+elif frozen:
+    meld.conf.frozen()
 
 # TODO: Possibly move to elib.intl
 import gettext
diff --git a/meld/conf.py b/meld/conf.py
index f6007be..089e01d 100644
--- a/meld/conf.py
+++ b/meld/conf.py
@@ -14,6 +14,21 @@ _ = None
 ngettext = None
 
 
+def frozen():
+    global DATADIR, LOCALEDIR
+
+    melddir = os.path.dirname(sys.executable)
+
+    DATADIR = os.path.join(melddir, "share", "meld")
+    LOCALEDIR = os.path.join(melddir, "share", "mo")
+
+    # This first bit should be unnecessary, but some things (GTK icon theme
+    # location, GSettings schema location) don't fall back correctly.
+    data_dir = os.environ.get('XDG_DATA_DIRS', "/usr/local/share/:/usr/share/")
+    data_dir = ":".join((melddir, data_dir))
+    os.environ['XDG_DATA_DIRS'] = data_dir
+
+
 def uninstalled():
     global DATADIR, LOCALEDIR, UNINSTALLED
     melddir = os.path.abspath(os.path.join(


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]