Class: Wip::ErrorInterpreter

Inherits:
Object
  • Object
show all
Defined in:
lib/wip/error_interpreter.rb

Overview

Translates raw WSLC error output into friendlier hints.

Constant Summary collapse

RSYNC_MISSING =

Shells report a missing rsync as "rsync: not found", while the container runtime names the executable either before or after its own phrasing.

Regexp.union(
  /rsync: (?:command )?not found/i,
  /rsync[^\n]*executable file not found/i,
  /executable file not found[^\n]*rsync/i
)

Instance Method Summary collapse

Constructor Details

#initialize(architecture: Environment.new.architecture) ⇒ ErrorInterpreter

Returns a new instance of ErrorInterpreter.



14
15
16
# File 'lib/wip/error_interpreter.rb', line 14

def initialize(architecture: Environment.new.architecture)
  @architecture = architecture
end

Instance Method Details

#interpret(output) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/wip/error_interpreter.rb', line 18

def interpret(output)
  case output
  when /pull access denied|insufficient_scope|authorization failed/i then registry_message
  when %r{no matching manifest for linux/(?:amd64|arm64)}i then architecture_message
  when RSYNC_MISSING then rsync_message
  end
end