]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
Fix bug to ensure compatibility with Python < 2.6
authoraguerre <aguerre>
Thu, 13 Jun 2013 15:06:01 +0000 (15:06 +0000)
committeraguerre <aguerre>
Thu, 13 Jun 2013 15:06:01 +0000 (15:06 +0000)
bin/appliskel/getAppliPath.py

index d16f50d84406e12187d8ecdb89730bf3331fff76..90bb3cac0d580b1f67f747389041d6ce05caece1 100755 (executable)
 #
 
 import os
+import sys
+
+######
+# Warning: relpath might be replaced by equivalent os.relpath introduced in
+# Python 2.6 (Calibre 7).
+# It is still here to ensure compatibility with Calibre 6 (Python 2.5)
+def relpath(target, base):
+    """ Find relative path from base to target
+        if target== "/local/chris/appli" and base== "/local/chris" the result is appli
+        if target== /tmp/appli and base /local/chris the result is ../../tmp/appli
+    """
+    target=target.split(os.path.sep)
+    base=base.split(os.path.sep)
+    for i in xrange(len(base)):
+      if base[i] != target[i]:
+        i=i-1
+        #not in base
+        break
+    p=['..']*(len(base)-i-1)+target[i+1:]
+    if p == []:
+      return '.'
+    return os.path.join( *p )
+#
 
 def get_appli_path(filePath=None):
     if filePath is None:
@@ -31,7 +54,12 @@ def get_appli_path(filePath=None):
     homePath = os.path.realpath(os.getenv('HOME'))
     applipath = os.path.relpath(filePath, homePath)
     return applipath
+#
 
 if __name__ == "__main__":
-    applipath = get_appli_path()
+    if sys.hexversion < 0x02060000: # Python older than 2.6.0
+        applipath = relpath(os.path.realpath(os.path.dirname(__file__)),os.path.realpath(os.getenv('HOME')))
+    else:
+        applipath = get_appli_path()
     print applipath
+#