Class: Desi::Runner

Inherits:
Boson::Runner
  • Object
show all
Defined in:
lib/desi/runner.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.start_optionsObject



14
15
16
17
# File 'lib/desi/runner.rb', line 14

def self.start_options
  option :foreground, type: :boolean, desc: "Run ES in the foreground", default: false
  option :tail, type: :boolean, desc: "Run tail after (re)starting", default: false
end

.verbosity_optionObject



9
10
11
12
# File 'lib/desi/runner.rb', line 9

def self.verbosity_option
  option :verbose, type: :boolean, desc: "Display information messages", default: STDOUT.tty?
  option :quiet,   type: :boolean, desc: "Do not output anything", default: !STDOUT.tty?
end

Instance Method Details

#current(version = nil, options = {}) ⇒ Object



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/desi/runner.rb', line 76

def current(version = nil, options = {})
  set_verbosity!(options)
  local_install = Desi::LocalInstall.new

  if version
    dir = local_install.releases.find {|d| d.with_version?(version) }

    unless dir
      warn "Cannot find locale install of version #{version}"
      exit 1
    end
    local_install.update_current_to(dir)
    puts "Set current version to #{dir.version} (#{dir.to_path})" if options[:verbose]
  else
    puts local_install.current_release
  end
end

#indices(pattern = nil, options = {}) ⇒ Object



131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# File 'lib/desi/runner.rb', line 131

def indices(pattern = nil, options = {})
  set_verbosity!(options)
  index_manager = Desi::IndexManager.new(options)

  if options[:delete]
    index_manager.delete!(pattern)
  elsif options[:close]
    index_manager.close!(pattern)
  elsif options[:empty]
    index_manager.empty!(pattern)
  else
    index_manager.list(pattern)
  end

rescue Errno::ECONNREFUSED
  warn "Server #{options[:host]} appears to be unavailable!"
  exit 1
end

#install(version_or_full_name = nil, options = {}) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/desi/runner.rb', line 48

def install(version_or_full_name = nil, options = {})
  set_verbosity!(options)
  release = if version_or_full_name
              Desi::Upstream.new.find_release(version_or_full_name)
            else
              puts " * No release specified, will fetch latest." if options[:verbose]
              Desi::Upstream.new.latest_release
            end

  unless release
    warn "Could not find release '#{version_or_full_name}'"
    exit 1
  end

  if Desi::LocalInstall.new.releases.any? {|r| r == release }
    puts " * release #{release.version} seems to be already installed" if options[:verbose]
    return
  end

  puts " * fetching release #{release}" if options[:verbose]
  package = Desi::Downloader.new(options).download!(release)

  puts " * #{release} installed" if Desi::Installer.new(package).install! && options[:verbose]
end

#list(options = {}) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/desi/runner.rb', line 21

def list(options = {})
  set_verbosity!(options)
  puts "Local ES installs in #{Desi.configuration.directory} (current one is tagged with '*'):" if options[:verbose]
  Desi::LocalInstall.new.releases.sort.reverse.each do |v|
    puts v
  end
end

#releases(options = {}) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/desi/runner.rb', line 32

def releases(options = {})
  set_verbosity!(options)
  limit = options[:limit]
  releases = Desi::Upstream.new.releases.each_with_index.
    take_while {|rel, i| i < limit || limit == 0 }.map(&:first)

  if options[:verbose]
    puts "Here are #{limit == 0 ? 'all the' : "the #{limit} latest"} releases"
    releases.each {|rel| puts " - #{rel.name}" }
  else
    releases
  end
end

#restart(options = {}) ⇒ Object



105
106
107
108
# File 'lib/desi/runner.rb', line 105

def restart(options = {})
  set_verbosity!(options)
  Desi::ProcessManager.new(options).restart
end

#start(options = {}) ⇒ Object



97
98
99
100
# File 'lib/desi/runner.rb', line 97

def start(options = {})
  set_verbosity!(options)
  Desi::ProcessManager.new(options).start
end

#status(options = {}) ⇒ Object



120
121
122
123
# File 'lib/desi/runner.rb', line 120

def status(options = {})
  set_verbosity!(options)
  Desi::ProcessManager.new(options).status
end

#stop(options = {}) ⇒ Object



112
113
114
115
# File 'lib/desi/runner.rb', line 112

def stop(options = {})
  set_verbosity!(options)
  Desi::ProcessManager.new(options).stop
end

#tailObject



151
152
153
# File 'lib/desi/runner.rb', line 151

def tail
  Desi::ProcessManager.new.show_tail
end

#versionObject



156
157
158
# File 'lib/desi/runner.rb', line 156

def version
  puts Desi::VERSION
end