Class: SpaceArchitect::CLI::Repo::Resolve

Inherits:
Dry::CLI::Command
  • Object
show all
Includes:
GlobalOptions, Helpers
Defined in:
lib/space_architect/cli/repo.rb

Instance Method Summary collapse

Methods included from Helpers

#display_date, #handle_errors, #project_config, #render, #setup_terminal, #state, #store, #terminal

Methods included from GlobalOptions

included

Instance Method Details

#call(repos: [], **opts) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/space_architect/cli/repo.rb', line 69

def call(repos: [], **opts)
  setup_terminal(**opts.slice(:color, :colors))
  handle_errors do
    specs = Array(repos).compact
    if specs.empty?
      terminal.error("Usage: space repo resolve REPO [REPO...]")
      CLI.record_outcome(Outcome.new(exit_code: 1))
      next
    end

    references = specs.map { |spec| RepoResolver.new(project_config).resolve(spec) }
    terminal.say terminal.table(["Repo", "Clone URL"], references.map { |ref| [ref.full_name, ref.clone_url] })
    CLI.record_outcome(Outcome.new(exit_code: 0))
  end
end