Module: AgentJail::Platform

Defined in:
lib/agent_jail/platform.rb

Class Method Summary collapse

Class Method Details

.fork_supported?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/agent_jail/platform.rb', line 17

def self.fork_supported?
  linux? || macos?
end

.kernel_versionObject



27
28
29
30
31
# File 'lib/agent_jail/platform.rb', line 27

def self.kernel_version
  return Gem::Version.new("0.0") unless linux?

  read_kernel_version
end

.landlock_supported?Boolean

Returns:

  • (Boolean)


21
22
23
24
25
# File 'lib/agent_jail/platform.rb', line 21

def self.landlock_supported?
  return false unless linux?

  kernel_version >= Gem::Version.new("5.13")
end

.linux?Boolean

Returns:

  • (Boolean)


5
6
7
# File 'lib/agent_jail/platform.rb', line 5

def self.linux?
  RUBY_PLATFORM.include?("linux")
end

.macos?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/agent_jail/platform.rb', line 9

def self.macos?
  RUBY_PLATFORM.include?("darwin")
end

.windows?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/agent_jail/platform.rb', line 13

def self.windows?
  RUBY_PLATFORM.match?(/mingw|mswin|cygwin/)
end