main
 1# frozen_string_literal: true
 2
 3require "fileutils"
 4require "open3"
 5require "rugged"
 6require "uri"
 7
 8require "jive/batch_runner"
 9require "jive/docker"
10require "jive/git"
11require "jive/issue"
12require "jive/popen"
13require "jive/project"
14require "jive/pull_request"
15require "jive/repo"
16require "jive/runner"
17require "jive/shell"
18require "jive/version"
19
20module Jive
21  class Error < StandardError; end
22
23  def self.root
24    @root ||= Pathname.new(__FILE__).parent.parent
25  end
26
27  def self.run(tasks)
28    Jive::BatchRunner.new.run(tasks)
29  end
30
31  def self.shell
32    @shell ||= ::Jive::Shell.new
33  end
34
35  def self.home
36    @home ||= Pathname(Dir.home).join(".jive")
37  end
38
39  def self.prompt?(items, display: ->(x) { x })
40    CLI::UI::Prompt.ask("Choose?") do |handler|
41      items.each do |item|
42        handler.option(display.call(item)) do |_selection|
43          return item
44        end
45      end
46    end
47  end
48end