mirror of
https://github.com/jimeh/skyhook.git
synced 2026-02-19 02:56:39 +00:00
93 lines
1.9 KiB
Ruby
93 lines
1.9 KiB
Ruby
##
|
|
# Skyhook Services - Libraries
|
|
##
|
|
|
|
require "yaml"
|
|
require "fileutils"
|
|
require "lib/skyhook/utils"
|
|
require "lib/skyhook/utils/initd"
|
|
require "lib/skyhook/utils/monit"
|
|
require "lib/skyhook/utils/nginx"
|
|
require "lib/skyhook/utils/object_overloads"
|
|
require "lib/skyhook/utils/svn"
|
|
require "lib/skyhook/project"
|
|
require "lib/skyhook/projects"
|
|
require "lib/skyhook/action"
|
|
require "lib/skyhook/mode"
|
|
|
|
class Skyhook
|
|
|
|
@info = {}
|
|
|
|
class << self
|
|
attr_accessor :info
|
|
end
|
|
|
|
def self.start
|
|
save_status if !load_status
|
|
if !@info.nil? && (!@info.has_key?(:booted) || @info[:booted] != true)
|
|
save_status({:booted => true})
|
|
end
|
|
if !Nginx.restore_enabled
|
|
Nginx.ensite("projects")
|
|
Nginx.ensite("default")
|
|
Nginx.ensite("monit-status")
|
|
end
|
|
Projects.boot
|
|
Action.perms :ensure
|
|
puts "Starting Skyhook services."
|
|
Initd.monit :start
|
|
sleep 1
|
|
Monit.start :all
|
|
sleep 1
|
|
Projects.start
|
|
write_status(1)
|
|
end
|
|
|
|
def self.stop
|
|
puts "Stopping Skyhook services."
|
|
Projects.stop
|
|
Monit.stop :all
|
|
sleep 1
|
|
Initd.monit :stop
|
|
write_status(0)
|
|
end
|
|
|
|
def self.restart
|
|
puts "Restarting Skyhook services."
|
|
Projects.restart
|
|
Monit.restart :all
|
|
sleep 1
|
|
Initd.monit :restart
|
|
end
|
|
|
|
def self.status
|
|
if File.exist?($status_file)
|
|
puts "Skyhook services are running."
|
|
else
|
|
puts "Skyhook services are not running."
|
|
end
|
|
end
|
|
|
|
def self.method_missing(method, *args)
|
|
call = (args.size > 0) ? args.shift : nil
|
|
Action.send(method, call, *args)
|
|
end
|
|
|
|
def self.load_status
|
|
if File.exist?("#{$skyhook_root}/init/status.yml")
|
|
@info = YAML.load_file("#{$skyhook_root}/init/status.yml")
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
def self.save_status(input = {})
|
|
@info = @info.merge(input)
|
|
File.open("#{$skyhook_root}/init/status.yml", "w") do |f|
|
|
YAML.dump(@info, f)
|
|
end
|
|
end
|
|
|
|
end
|