Class: SpaceArchitect::CLI::Repo::RepoList

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(**opts) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/space_architect/cli/repo.rb', line 44

def call(**opts)
  setup_terminal(**opts.slice(:color, :colors))
  handle_errors do
    render(store.repos) do |repos|
      if repos.empty?
        id = store.find.fmap(&:id).value_or("(unknown space)")
        terminal.say "No repos found in #{id}"
        next
      end

      rows = repos.map { |repo| [repo.fetch("full_name", repo["name"]), repo.fetch("path", "")] }
      terminal.say terminal.table(["Repo", "Path"], rows)
      CLI.record_outcome(Outcome.new(exit_code: 0))
    end
  end
end