From: Cédric Aguerre Date: Fri, 4 Apr 2014 15:25:22 +0000 (+0200) Subject: improve application path detection: follow symbolic link X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=a5a431dfc79d6d9054b879ad85757f554f92e15b;p=modules%2Fyacs.git improve application path detection: follow symbolic link --- diff --git a/bin/appliskel/salome b/bin/appliskel/salome index 3ec2efe10..ae57dae12 100755 --- a/bin/appliskel/salome +++ b/bin/appliskel/salome @@ -22,16 +22,40 @@ import os import sys +def __detectAppliPath(fromPath): + detection_criterion = "USERS" # the application folder is found if it contains a USERS subfolder + + users_folder = os.path.join(fromPath, detection_criterion) + if os.path.isdir(users_folder): + return fromPath + + pattern = "/bin/salome/appliskel" + if fromPath.endswith(pattern): + currentPath = __detectAppliPath(fromPath[:-len(pattern)]) + if not currentPath is None: + return currentPath + + if sys.platform.startswith("linux"): + filename = os.path.basename(__file__) + link_target = os.readlink(os.path.join(fromPath,filename)) # LINUX ONLY + currentPath = os.path.dirname(os.path.abspath(link_target)) + return __detectAppliPath(currentPath) + + return None +# + # Preliminary work to initialize path to SALOME Python modules def __initialize(): currentPath = os.path.dirname( os.path.abspath( __file__ ) ) homePath = os.path.realpath(os.path.expanduser('~')) - appliPath = os.path.relpath(currentPath, homePath) - pattern = "/bin/salome/appliskel" - if appliPath.endswith(pattern): - appliPath = appliPath[:-len(pattern)] + appliPath = __detectAppliPath(currentPath) + + if appliPath is None: + print "ERROR: Unable to find application folder" + sys.exit(0) + appliPath = os.path.relpath(appliPath, homePath) absoluteAppliPath = os.path.join(homePath, appliPath) os.environ['APPLI'] = appliPath # needed to convert .sh environment files os.environ['ABSOLUTE_APPLI_PATH'] = absoluteAppliPath