From a5a431dfc79d6d9054b879ad85757f554f92e15b Mon Sep 17 00:00:00 2001 From: =?utf8?q?C=C3=A9dric=20Aguerre?= Date: Fri, 4 Apr 2014 17:25:22 +0200 Subject: [PATCH] improve application path detection: follow symbolic link --- bin/appliskel/salome | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) 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 -- 2.39.2