File: java_libjvm_path.rb

package info (click to toggle)
puppet-module-puppetlabs-java 11.1.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 524 kB
  • sloc: ruby: 1,718; sh: 10; makefile: 4
file content (34 lines) | stat: -rw-r--r-- 967 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# frozen_string_literal: true

# Fact: java_libjvm_path
#
# Purpose: get path to libjvm.so
#
# Resolution:
#   Lists file in java default home and searches for the file
#
# Caveats:
#   Needs to list files recursively. Returns the first match
#   Needs working java_major_version fact
#
# Notes:
#   None
Facter.add(:java_libjvm_path) do
  confine kernel: ['Linux', 'OpenBSD']
  setcode do
    java_default_home = Facter.value(:java_default_home)
    java_major_version = Facter.value(:java_major_version)
    unless java_major_version.nil?
      java_libjvm_file = if java_major_version.to_i >= 11
                           Dir.glob("#{java_default_home}/lib/**/libjvm.so")
                         else
                           Dir.glob("#{java_default_home}/jre/lib/**/libjvm.so")
                         end
      if java_libjvm_file.nil? || java_libjvm_file.empty?
        nil
      else
        File.dirname(java_libjvm_file[0])
      end
    end
  end
end