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


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

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

#check(conf) ⇒ Object


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

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


149
150
151
152
153
154
155
156
# File 'lib/eye/cli.rb', line 149

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


56
57
58
59
60
61
62
63
# File 'lib/eye/cli.rb', line 56

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


17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/eye/cli.rb', line 17

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

  if options[:json]
    require 'json'
    say JSON.dump(res)
  else
    say render_info(res)
    say
  end
end

#load(*configs) ⇒ Object


67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/eye/cli.rb', line 67

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?
    configs << Eye::Local.eyefile if Eye::Local.local_runner
    say_load_result cmd(:load, *configs)

  else
    server_start(configs)

  end
end

#oinfo(mask = nil) ⇒ Object


49
50
51
52
53
# File 'lib/eye/cli.rb', line 49

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

#quitObject


88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/eye/cli.rb', line 88

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 = Eye::Local.default_client_timeout
  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.exist?(Eye::Local.pid_path)

  say "Quit ಠ╭╮ಠ", :yellow
end

#signal(sig, *masks) ⇒ Object


114
115
116
# File 'lib/eye/cli.rb', line 114

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

#status(name) ⇒ Object


33
34
35
36
37
38
# File 'lib/eye/cli.rb', line 33

def status(name)
  res = cmd(:info_data, *Array(name))
  es, msg = render_status(res)
  say(msg, :red) if msg && !msg.empty?
  exit(es)
end

#trace(mask = "") ⇒ Object


124
125
126
# File 'lib/eye/cli.rb', line 124

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

#user_command(cmd, *args) ⇒ Object


174
175
176
# File 'lib/eye/cli.rb', line 174

def user_command(cmd, *args)
  send_command(:user_command, cmd, *args)
end

#versionObject


130
131
132
# File 'lib/eye/cli.rb', line 130

def version
  say Eye::ABOUT
end

#watch(*args) ⇒ Object


159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/eye/cli.rb', line 159

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


42
43
44
45
46
# File 'lib/eye/cli.rb', line 42

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