summaryrefslogtreecommitdiff
path: root/share/java-common.sh
diff options
context:
space:
mode:
Diffstat (limited to 'share/java-common.sh')
-rw-r--r--share/java-common.sh36
1 files changed, 36 insertions, 0 deletions
diff --git a/share/java-common.sh b/share/java-common.sh
new file mode 100644
index 0000000..c0db858
--- /dev/null
+++ b/share/java-common.sh
@@ -0,0 +1,36 @@
+function jvm_scan_file() {
+ file="$1"
+
+ grep -v '#' "$file" | while read jvm; do
+ if [ -n "$jvm" -a -x "$jvm/bin/java" ]; then
+ echo -n $jvm
+ return
+ fi
+ done
+}
+
+function jvm_find() {
+ local jvm
+
+ if [ -n "$JAVA_HOME" ]; then
+ jvm="$JAVA_HOME"
+ fi
+
+ for file in \
+ "$HOME/.jvm.d/$1" \
+ "$HOME/.jvm" \
+ "/etc/jvm.d/$1" \
+ "/etc/jvm"; do \
+ if [ -z "$jvm" ]; then
+ if [ -r "$file" ]; then
+ jvm="$(jvm_scan_file "$file")"
+ fi
+ fi
+ done
+
+ echo -n "$jvm"
+}
+
+function jvm_config() {
+ echo JAVA_HOME="$(jvm_find "$1")"
+}