Module: Enola::CLI

Defined in:
lib/enola/cli.rb

Class Method Summary collapse

Class Method Details

.start(argv, stderr: $stderr, stdout: $stdout) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/enola/cli.rb', line 7

def self.start(argv, stderr: $stderr, stdout: $stdout)
  case argv.first
  when "--wrapper-probe"
    found = Enola.resolver.resolve
    stdout.puts JSON.pretty_generate(Probe.new(found.path).report.merge(source: found.source))
    0
  when "--wrapper-fetch"
    stdout.puts Fetcher.new.fetch
    0
  when "init"
    root = argv[1] || "."
    written = Config.write_default(root)
    stdout.puts(written ? "wrote #{written}" : "#{Config.path(root)} already exists, left as is")
    Runner.new(stderr: stderr).run(["constraints", "init", root])
  else
    Runner.new.exec(argv)
  end
rescue Error => e
  stderr.puts "enola: #{e.message}"
  127
end