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