Class: Karo::CLI

Inherits:
Thor
  • Object
show all
Includes:
Common, Thor::Actions
Defined in:
lib/karo/cli.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Common

#branch_exists?, #checkout_branch, #create_and_checkout_branch, #create_branch, #current_branch, #git_repo, #make_command, #run_it

Class Method Details

.source_rootObject



43
44
45
# File 'lib/karo/cli.rb', line 43

def self.source_root
  File.dirname(__FILE__)
end

Instance Method Details

#client(cmd, *extras) ⇒ Object



81
82
83
84
85
# File 'lib/karo/cli.rb', line 81

def client(cmd, *extras)
  configuration = Config.load_configuration(options)
  command = make_command configuration, "client", cmd, extras
  run_it command, options[:verbose]
end

#configObject



37
38
39
40
41
# File 'lib/karo/cli.rb', line 37

def config
  configuration = Config.load_configuration(options)

  puts JSON.pretty_generate(configuration) if configuration
end

#consoleObject



164
165
166
167
168
169
170
171
# File 'lib/karo/cli.rb', line 164

def console
  configuration = Config.load_configuration(options)

  path = File.join(configuration["path"], "current")
  cmd  = "cd #{path} && $SHELL --login -c \"bundle exec rails console\""

  invoke :server, [cmd]
end

#deploy(*extras) ⇒ Object



90
91
92
# File 'lib/karo/cli.rb', line 90

def deploy(*extras)
  invoke :client, ["deploy", extras]
end

#generateObject



48
49
50
51
# File 'lib/karo/cli.rb', line 48

def generate
  config_file = File.expand_path(options[:config_file])
  copy_file 'templates/karo.yml', config_file
end

#log(*extras) ⇒ Object



195
196
197
198
199
200
201
202
203
204
205
# File 'lib/karo/cli.rb', line 195

def log(*extras)
  configuration = Config.load_configuration(options)

  path = File.join(configuration["path"], "shared/log/#{options["environment"]}.log")

  cmd = "tail"
  cmd << " -f" if options[:continous]
  cmd << " #{path}"

  invoke :server, [cmd, extras]
end

#rake(command, *extras) ⇒ Object



174
175
176
177
178
179
180
181
# File 'lib/karo/cli.rb', line 174

def rake(command, *extras)
  configuration = Config.load_configuration(options)

  path = File.join(configuration["path"], "current")
  cmd  = "cd #{path} && $SHELL --login -c \"bundle exec rake #{command}\""

  invoke :server, [cmd, extras]
end

#server(cmd, *extras) ⇒ Object



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

def server(cmd, *extras)
  configuration = Config.load_configuration(options)

  ssh  = "ssh #{configuration["user"]}@#{configuration["host"]}"
  ssh << " -t" if options[:tty]

  command = make_command configuration, "server", cmd, extras
  run_it "#{ssh} '#{command}'", options[:verbose]
end

#sshObject



154
155
156
157
158
159
160
161
# File 'lib/karo/cli.rb', line 154

def ssh
  configuration = Config.load_configuration(options)

  path = File.join(configuration["path"], "current")
  cmd  = "cd #{path}; $SHELL --login"

  invoke :server, [cmd]
end

#top(*extras) ⇒ Object



149
150
151
# File 'lib/karo/cli.rb', line 149

def top(*extras)
  invoke :server, ["top", extras]
end

#versionObject



208
209
210
# File 'lib/karo/cli.rb', line 208

def version
  say Karo::VERSION
end

#vim(command = "", *extras) ⇒ Object



184
185
186
187
188
189
190
191
# File 'lib/karo/cli.rb', line 184

def vim(command="", *extras)
  configuration = Config.load_configuration(options)

  path = File.join(configuration["path"], "current", command)
  cmd  = "vim scp://#{configuration["user"]}@#{configuration["host"]}/#{path}"

  invoke :client, [cmd, extras]
end