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