OpenBSD doesn't have /etc/environment, therefore there is no
need to fiddle with it. The default case statement, "do nothing" is all fine here. Facter::Util::Resolution.with_env is long time gone since Facter > 2.x. That was even longer before introduced by me. Remove that OpenBSD special case in the java_version fact, and assume that $PATH is properly set in order to find the 'java' binary. Additionally confine the java_default_home and java_libjvm_path to OpenBSD kernel as well. Add some flesh to the java_default_home fact to allow it to find the java binary.
This commit is contained in:
committed by
Will Meek
parent
db30eb9e2d
commit
bdfc567c18
@@ -11,13 +11,20 @@
|
|||||||
# Notes:
|
# Notes:
|
||||||
# None
|
# None
|
||||||
Facter.add(:java_default_home) do
|
Facter.add(:java_default_home) do
|
||||||
confine :kernel => 'Linux'
|
confine :kernel => [ 'Linux', 'OpenBSD' ]
|
||||||
setcode do
|
setcode do
|
||||||
if Facter::Util::Resolution.which('readlink')
|
if Facter::Util::Resolution.which('readlink')
|
||||||
java_bin = Facter::Util::Resolution.exec('readlink -e /usr/bin/java').strip
|
java_bin = Facter::Util::Resolution.exec('readlink -e /usr/bin/java').to_s.strip
|
||||||
|
if java_bin.empty?
|
||||||
|
java_bin = Facter::Util::Resolution.exec('readlink -e /usr/local/bin/java').to_s.strip
|
||||||
|
if java_bin.empty?
|
||||||
|
java_bin = Facter::Util::Resolution.which('java').to_s.strip
|
||||||
if java_bin.empty?
|
if java_bin.empty?
|
||||||
nil
|
nil
|
||||||
elsif java_bin =~ %r(/jre/)
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if java_bin =~ %r(/jre/)
|
||||||
java_default_home = File.dirname(File.dirname(File.dirname(java_bin)))
|
java_default_home = File.dirname(File.dirname(File.dirname(java_bin)))
|
||||||
else
|
else
|
||||||
java_default_home = File.dirname(File.dirname(java_bin))
|
java_default_home = File.dirname(File.dirname(java_bin))
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
# Notes:
|
# Notes:
|
||||||
# None
|
# None
|
||||||
Facter.add(:java_libjvm_path) do
|
Facter.add(:java_libjvm_path) do
|
||||||
confine :kernel => "Linux"
|
confine :kernel => [ "Linux", "OpenBSD" ]
|
||||||
setcode do
|
setcode do
|
||||||
java_default_home = Facter.value(:java_default_home)
|
java_default_home = Facter.value(:java_default_home)
|
||||||
java_libjvm_file = Dir.glob("#{java_default_home}/jre/lib/**/libjvm.so")
|
java_libjvm_file = Dir.glob("#{java_default_home}/jre/lib/**/libjvm.so")
|
||||||
|
|||||||
@@ -21,21 +21,7 @@ Facter.add(:java_version) do
|
|||||||
# Additionally, facter versions prior to 2.0.1 only support
|
# Additionally, facter versions prior to 2.0.1 only support
|
||||||
# positive matches, so this needs to be done manually in setcode.
|
# positive matches, so this needs to be done manually in setcode.
|
||||||
setcode do
|
setcode do
|
||||||
unless [ 'openbsd', 'darwin' ].include? Facter.value(:operatingsystem).downcase
|
unless [ 'darwin' ].include? Facter.value(:operatingsystem).downcase
|
||||||
version = nil
|
|
||||||
if Facter::Util::Resolution.which('java')
|
|
||||||
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = $~[1] if /^.+ version \"(.+)\"$/ =~ line }
|
|
||||||
end
|
|
||||||
version
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
Facter.add(:java_version) do
|
|
||||||
confine :operatingsystem => 'OpenBSD'
|
|
||||||
has_weight 100
|
|
||||||
setcode do
|
|
||||||
Facter::Util::Resolution.with_env("PATH" => '/usr/local/jdk-1.7.0/jre/bin:/usr/local/jre-1.7.0/bin') do
|
|
||||||
version = nil
|
version = nil
|
||||||
if Facter::Util::Resolution.which('java')
|
if Facter::Util::Resolution.which('java')
|
||||||
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = $~[1] if /^.+ version \"(.+)\"$/ =~ line }
|
Facter::Util::Resolution.exec('java -Xmx12m -version 2>&1').lines.each { |line| version = $~[1] if /^.+ version \"(.+)\"$/ =~ line }
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ class java::config ( ) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'OpenBSD', 'FreeBSD', 'Suse': {
|
'FreeBSD', 'Suse': {
|
||||||
if $java::use_java_home != undef {
|
if $java::use_java_home != undef {
|
||||||
file_line { 'java-home-environment':
|
file_line { 'java-home-environment':
|
||||||
path => '/etc/environment',
|
path => '/etc/environment',
|
||||||
|
|||||||
Reference in New Issue
Block a user