SLIDER-347 Slider script should handle the case where java is not in PATH 
variable


Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/6afa8f97
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/6afa8f97
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/6afa8f97

Branch: refs/heads/feature/SLIDER-149_Support_a_YARN_service_registry
Commit: 6afa8f978bb24acc99482a57c7d8a1f7bad0213a
Parents: 31d70a3
Author: tedyu <yuzhih...@gmail.com>
Authored: Sat Aug 23 13:12:58 2014 -0700
Committer: tedyu <yuzhih...@gmail.com>
Committed: Sat Aug 23 13:15:29 2014 -0700

----------------------------------------------------------------------
 slider-assembly/src/main/scripts/slider    |  3 ++-
 slider-assembly/src/main/scripts/slider.py | 21 ++++++++++++++++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/6afa8f97/slider-assembly/src/main/scripts/slider
----------------------------------------------------------------------
diff --git a/slider-assembly/src/main/scripts/slider 
b/slider-assembly/src/main/scripts/slider
index caf275b..7172917 100755
--- a/slider-assembly/src/main/scripts/slider
+++ b/slider-assembly/src/main/scripts/slider
@@ -71,4 +71,5 @@ echo ""
 echo "command is java ${slider_jvm_opts} --classpath \"${slider_classpath}\" 
${launcher} $@"
 echo ""
 echo ""
-exec java ${slider_jvm_opts}  ${launcher} $@
+type java >/dev/null 2>&1 || javabin=${JAVA_HOME}/bin
+exec ${javabin}/java ${slider_jvm_opts}  ${launcher} $@

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/6afa8f97/slider-assembly/src/main/scripts/slider.py
----------------------------------------------------------------------
diff --git a/slider-assembly/src/main/scripts/slider.py 
b/slider-assembly/src/main/scripts/slider.py
index e60bed3..db4b881 100644
--- a/slider-assembly/src/main/scripts/slider.py
+++ b/slider-assembly/src/main/scripts/slider.py
@@ -118,6 +118,22 @@ def runProcess(commandline):
   print errline + err.decode()
   return exe.returncode
 
+def which(program):
+    def is_exe(fpath):
+        return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
+
+    fpath, fname = os.path.split(program)
+    if fpath:
+        if is_exe(program):
+            return program
+    else:
+        for path in os.environ["PATH"].split(os.pathsep):
+            path = path.strip('"')
+            exe_file = os.path.join(path, program)
+            if is_exe(exe_file):
+                return exe_file
+
+    return None
 
 def java(classname, args, classpath, jvm_opts_list):
   """
@@ -131,7 +147,10 @@ def java(classname, args, classpath, jvm_opts_list):
   """
   # split the JVM opts by space
   # java = "/usr/bin/java"
-  commandline = ["java"]
+  prg="java"
+  if which("java")==None:
+    prg=os.environ["JAVA_HOME"]+"/bin/java"
+  commandline = [prg]
   commandline.extend(jvm_opts_list)
   commandline.append("-classpath")
   commandline.append(classpath)

Reply via email to