Class: SpaceArchitect::CLI::Repo::Add
- Inherits:
-
Dry::CLI::Command
- Object
- Dry::CLI::Command
- SpaceArchitect::CLI::Repo::Add
- 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
Instance Method Details
#call(repos: [], **opts) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/space_architect/cli/repo.rb', line 13 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 add REPO [REPO...]") CLI.record_outcome(Outcome.new(exit_code: 1)) next end progress = RepoProgress.new(specs.length) add_result = terminal.with_spinner(-> { progress. }) do store.add_repos(specs, reporter: progress) end render(add_result) do |results| results.each do |result| terminal.success "Added #{result.fetch(:repo).fetch('full_name')}" terminal.say terminal.path(result.fetch(:path)) end CLI.record_outcome(Outcome.new(exit_code: 0)) end end end |