70 lines
1.3 KiB
Ruby
Executable file
70 lines
1.3 KiB
Ruby
Executable file
#!/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
|