Class: Wip::Environment
- Inherits:
-
Object
- Object
- Wip::Environment
- Defined in:
- lib/wip/environment.rb
Overview
Detects WSL2, Windows interop, and architecture facts about the host.
Instance Method Summary collapse
- #architecture ⇒ Object
-
#initialize(stdin: $stdin, stdout: $stdout) ⇒ Environment
constructor
A new instance of Environment.
- #interactive? ⇒ Boolean
- #windows_interop? ⇒ Boolean
- #wsl2? ⇒ Boolean
Constructor Details
#initialize(stdin: $stdin, stdout: $stdout) ⇒ Environment
Returns a new instance of Environment.
6 7 8 9 |
# File 'lib/wip/environment.rb', line 6 def initialize(stdin: $stdin, stdout: $stdout) @stdin = stdin @stdout = stdout end |
Instance Method Details
#architecture ⇒ Object
20 21 22 23 24 |
# File 'lib/wip/environment.rb', line 20 def architecture machine = `uname -m`.strip { 'x86_64' => 'linux/amd64', 'aarch64' => 'linux/arm64', 'arm64' => 'linux/arm64' }.fetch(machine, "linux/#{machine}") end |
#interactive? ⇒ Boolean
18 |
# File 'lib/wip/environment.rb', line 18 def interactive? = @stdin.tty? && @stdout.tty? |
#windows_interop? ⇒ Boolean
17 |
# File 'lib/wip/environment.rb', line 17 def windows_interop? = File.executable?('/proc/sys/fs/binfmt_misc/WSLInterop') || ENV.key?('WSL_INTEROP') |
#wsl2? ⇒ Boolean
11 12 13 14 15 |
# File 'lib/wip/environment.rb', line 11 def wsl2? File.read('/proc/version').match?(/microsoft.*WSL2/i) rescue Errno::ENOENT false end |