Class: Eye::Cli

Inherits:
Thor show all
Includes:
Commands, Render, Server
Defined in:
lib/eye/cli.rb

Defined Under Namespace

Modules: Commands, Render, Server

Instance Method Summary collapse

Instance Method Details

#break(*masks) ⇒ Object



107
108
109
# File 'lib/eye/cli.rb', line 107

def break(*masks)
  send_command(:break_chain, *masks)
end

#check(conf) ⇒ Object



125
126
127
128
129
130
131
132
# File 'lib/eye/cli.rb', line 125

def check(conf)
  conf = File.expand_path(conf) if conf && !conf.empty?

  Eye::Local.host = options[:host] if options[:host]
  Eye::Dsl.verbose = options[:verbose]

  say_load_result Eye::Controller.new.check(conf), :syntax => true
end

#explain(conf) ⇒ Object



137
138
139
140
141
142
143
144
# File 'lib/eye/cli.rb', line 137

def explain(conf)
  conf = File.expand_path(conf) if conf && !conf.empty?

  Eye::Local.host = options[:host] if options[:host]
  Eye::Dsl.verbose = options[:verbose]

  say_load_result Eye::Controller.new.explain(conf), :print_config => true, :syntax => true
end

#history(*masks) ⇒ Object



45
46
47
48
49
50
51
52
# File 'lib/eye/cli.rb', line 45

def history(*masks)
  res = cmd(:history_data, *masks)
  if !masks.empty? && res && res.empty?
    error!("command :history, objects not found!")
  end
  say render_history(res)
  say
end

#info(mask = nil) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/eye/cli.rb', line 14

def info(mask = nil)
  res = cmd(:info_data, *Array(mask))
  if mask && res[:subtree] && res[:subtree].empty?
    error!("command :info, objects not found!")
  end
  say render_info(res)
  say
end

#load(*configs) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/eye/cli.rb', line 56

def load(*configs)
  configs.map!{ |c| File.expand_path(c) } if !configs.empty?

  if options[:foreground]
    # in foreground we stop another server, and run just 1 current config version
    error!("foreground expected only one config") if configs.size > 1
    server_start_foreground(configs.first)

  elsif server_started?
    say_load_result cmd(:load, *configs)

  else
    server_start(configs)

  end
end

#oinfo(mask = nil) ⇒ Object



38
39
40
41
42
# File 'lib/eye/cli.rb', line 38

def oinfo(mask = nil)
  res = cmd(:short_data, *Array(mask))
  say render_info(res)
  say
end

#quitObject



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

def quit
  if options[:stop_all]
    Eye::Local.client_timeout = options[:timeout].to_i
    cmd(:stop_all, options[:timeout].to_i)
  end

  Eye::Local.client_timeout = 5
  res = _cmd(:quit)

  # if eye server got crazy, stop by force
  ensure_stop_previous_server if res != :corrupted_data

  # remove pid_file
  File.delete(Eye::Local.pid_path) if File.exists?(Eye::Local.pid_path)

  say "Quit :(", :yellow
end

#signal(sig, *masks) ⇒ Object



102
103
104
# File 'lib/eye/cli.rb', line 102

def signal(sig, *masks)
  send_command(:signal, sig, *masks)
end

#statusObject



24
25
26
27
# File 'lib/eye/cli.rb', line 24

def status
  say ":status is deprecated, use :info instead", :yellow
  info
end

#trace(mask = "") ⇒ Object



112
113
114
# File 'lib/eye/cli.rb', line 112

def trace(mask = "")
  log_trace(mask)
end

#versionObject



118
119
120
# File 'lib/eye/cli.rb', line 118

def version
  say Eye::ABOUT
end

#watch(*args) ⇒ Object



147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'lib/eye/cli.rb', line 147

def watch(*args)
  error!("You should install watch utility") if `which watch`.empty?

  cmd = if `watch --version 2>&1`.chop > '0.2.0'
    "watch -n 1 --color #{$0} i #{args * ' '}"
  else
    "watch -n 1 #{$0} i #{args * ' '}"
  end

  pid = Process.spawn(cmd)
  Process.waitpid(pid)
rescue Interrupt
end

#xinfoObject



31
32
33
34
35
# File 'lib/eye/cli.rb', line 31

def xinfo
  res = cmd(:debug_data, :config => options[:config])
  say render_debug_info(res)
  say
end