mirror of
https://github.com/jimeh/skyhook.git
synced 2026-02-19 11:06:38 +00:00
initial import
This commit is contained in:
92
init/lib/skyhook.rb
Normal file
92
init/lib/skyhook.rb
Normal file
@@ -0,0 +1,92 @@
|
||||
##
|
||||
# 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
|
||||
Reference in New Issue
Block a user