71 lines
1.3 KiB
Text
71 lines
1.3 KiB
Text
|
#!/usr/bin/env ruby
|
||
|
|
||
|
class GitlabCli
|
||
|
def initialize
|
||
|
@path = File.dirname(__FILE__)
|
||
|
@command = ARGV.shift
|
||
|
@mode = ARGV.shift
|
||
|
end
|
||
|
|
||
|
def execute
|
||
|
case @command
|
||
|
when 'start' then start
|
||
|
when 'stop' then stop
|
||
|
else
|
||
|
puts "-- Usage gitlab start production or gitlab stop development"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def start
|
||
|
case @mode
|
||
|
when 'production';
|
||
|
system(unicorn_start_cmd)
|
||
|
else
|
||
|
system(rails_start_cmd)
|
||
|
end
|
||
|
system(resque_start_cmd)
|
||
|
end
|
||
|
|
||
|
def stop
|
||
|
case @mode
|
||
|
when 'production';
|
||
|
system(unicorn_stop_cmd)
|
||
|
else
|
||
|
system(rails_stop_cmd)
|
||
|
end
|
||
|
system(resque_stop_cmd)
|
||
|
end
|
||
|
|
||
|
def rails_start_cmd
|
||
|
"bundle exec rails s -d"
|
||
|
end
|
||
|
|
||
|
def rails_stop_cmd
|
||
|
pid = File.join(@path, "tmp/pids/server.pid")
|
||
|
"kill -QUIT `cat #{pid}`"
|
||
|
end
|
||
|
|
||
|
def unicorn_start_cmd
|
||
|
unicorn_conf = File.join(@path, "config/unicorn.rb")
|
||
|
"bundle exec unicorn_rails -c #{unicorn_conf} -E production -D"
|
||
|
end
|
||
|
|
||
|
def unicorn_stop_cmd
|
||
|
pid = File.join(@path, "/tmp/pids/unicorn.pid")
|
||
|
"kill -QUIT `cat #{pid}`"
|
||
|
end
|
||
|
|
||
|
def resque_start_cmd
|
||
|
"./resque.sh > /dev/null 2>&1"
|
||
|
end
|
||
|
|
||
|
def resque_stop_cmd
|
||
|
pid = File.join(@path, "tmp/pids/resque_worker.pid")
|
||
|
"kill -QUIT `cat #{pid}`"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
GitlabCli.new.execute
|