Sha256: 7a361e155713b13d3d4976681d7e0987d3ba4247480dc02a1c62e68f8ddd10fc
Contents?: true
Size: 1.92 KB
Versions: 1
Compression:
Stored size: 1.92 KB
Contents
require "active_support" require "active_support/core_ext" module DistribotUI class Command < Thor ROOT = File.expand_path('../../../', __FILE__) desc "start", "start distribot-ui server" option :port, type: :numeric, default: 9292 option :pidfile, type: :string, default: File.expand_path('tmp/distribot-ui.pid', ROOT) option :daemonize, type: :boolean, default: false option :host, type: :string, default: '0.0.0.0' def start trap(:INT) { puts "\nStopping..." } # NOTE: on Debian based distributions, td-agent uses start-stop-daemon with --exec option for stopping process # then distribot-ui will be killed by them because given --exec option matches. # DISTRIBOT_UI_EXEC_COMMAND is used for workaround it. cmd = ENV['DISTRIBOT_UI_EXEC_COMMAND'].presence || "rackup" system(* %w(bundle exec) + cmd.split(" ") + %W(#{options[:daemonize] ? "-D" : ""} --pid #{options[:pidfile]} -p #{options[:port]} --host #{options[:host]} -E production #{ROOT}/config.ru)) end desc "stop", "stop distribot-ui server" option :pidfile, type: :string, default: File.expand_path('tmp/distribot-ui.pid', ROOT) def stop Process.kill(:TERM, pid) if pid rescue Errno::ESRCH ensure puts "stopped" end desc "status", "status of distribot-ui server" option :pidfile, type: :string, default: File.expand_path('tmp/distribot-ui.pid', ROOT) def status if pid && Process.kill(0, pid) puts "distribot-ui is running" else puts "distribot-ui is stopped" end rescue Errno::ESRCH puts "distribot-ui is stopped" end desc "setup", "setup distribot-ui server" long_desc <<-DESC install dependency gems DESC def setup trap(:INT) { puts "\nStopping..." } system(*%W(bundle install)) end private def pid File.read(options[:pidfile]).to_i rescue nil end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
distribot-ui-0.1.0 | lib/distribot-ui/command.rb |