class Desi::Runner

Public Class Methods

start_options() click to toggle source
# 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_option() click to toggle source
# 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

Public Instance Methods

current(version = nil, options = {}) click to toggle source
# 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 = {}) click to toggle source
# 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 = {}) click to toggle source
# 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 = {}) click to toggle source
# 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 = {}) click to toggle source
# 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 = {}) click to toggle source
# File lib/desi/runner.rb, line 105
def restart(options = {})
  set_verbosity!(options)
  Desi::ProcessManager.new(options).restart
end
start(options = {}) click to toggle source
# File lib/desi/runner.rb, line 97
def start(options = {})
  set_verbosity!(options)
  Desi::ProcessManager.new(options).start
end
status(options = {}) click to toggle source
# File lib/desi/runner.rb, line 120
def status(options = {})
  set_verbosity!(options)
  Desi::ProcessManager.new(options).status
end
stop(options = {}) click to toggle source
# File lib/desi/runner.rb, line 112
def stop(options = {})
  set_verbosity!(options)
  Desi::ProcessManager.new(options).stop
end
tail() click to toggle source
# File lib/desi/runner.rb, line 151
def tail
  Desi::ProcessManager.new.show_tail
end
version() click to toggle source
# File lib/desi/runner.rb, line 156
def version
  puts Desi::VERSION
end

Private Instance Methods

set_verbosity!(opts) click to toggle source
# File lib/desi/runner.rb, line 162
def set_verbosity!(opts)
  opts[:verbose] ||= opts.delete(:quiet)
end