module Escualo::Artifact

Public Class Methods

configure_monit(session, options) click to toggle source
# File lib/escualo/artifact.rb, line 54
def self.configure_monit(session, options)
  name = options[:name]
  session.tell! 'mkdir -p /etc/monit/conf.d/'
  session.upload_template! "/etc/monit/conf.d/escualo-#{name}", 'monit.conf', options
  session.tell! 'monit reload'
end
configure_upstart(session, options) click to toggle source
# File lib/escualo/artifact.rb, line 66
def self.configure_upstart(session, options)
  session.upload_template! "/etc/init/#{options[:name]}.conf", 'upstart.conf', options
end
create_codechange_script(session, name) click to toggle source
# File lib/escualo/artifact.rb, line 61
def self.create_codechange_script(session, name)
  session.upload_template! "/var/scripts/#{name}/codechange", 'codechange.sh', name: name
  session.tell! "chmod +x /var/scripts/#{name}/codechange"
end
create_init_script(session, options) click to toggle source
# File lib/escualo/artifact.rb, line 28
def self.create_init_script(session, options)
  session.upload_template! "/var/scripts/#{options[:name]}/init",
                           'init.sh',
                           options
  session.tell! "chmod +x /var/scripts/#{options[:name]}/init"
end
create_push_infra(session, options) click to toggle source
# File lib/escualo/artifact.rb, line 39
def self.create_push_infra(session, options)
  name = options[:name]
  session.tell_all! 'cd /var',
                    'mkdir -p www',
                    'mkdir -p repo',
                    'cd repo',
                    "rm -rf #{name}.git",
                    "mkdir #{name}.git",
                    "cd #{name}.git",
                    'git init --bare'
  hook_file = "/var/repo/#{name}.git/hooks/post-receive"
  session.upload_template! hook_file, 'post-receive.sh', options
  session.tell! "chmod +x #{hook_file}"
end
create_scripts_dir(session, name) click to toggle source
# File lib/escualo/artifact.rb, line 24
def self.create_scripts_dir(session, name)
  session.tell! "mkdir -p /var/scripts/#{name}"
end
destroy(session, name) click to toggle source
# File lib/escualo/artifact.rb, line 8
def self.destroy(session, name)
  raise 'name must not be blank' if name.blank?
  raise 'name must not contains wildcards' if name.include?('*')

  session.tell_all! "rm -rf /var/scripts/#{name}",
                    "rm -rf /var/repo/#{name}.git",
                    "rm -rf /var/www/#{name}",
                    "rm -f /etc/monit/conf.d/escualo-#{name}",
                    "rm -f /etc/init/#{name}.conf",
                    "test ! -e /var/repo/#{name}.git"
end
list(session) click to toggle source
# File lib/escualo/artifact.rb, line 35
def self.list(session)
  session.ask('ls /var/repo/').captures(/(.*)\.git/).map { $1 }
end
present?(session, name) click to toggle source
# File lib/escualo/artifact.rb, line 20
def self.present?(session, name)
  list(session).include? name rescue false
end
setup(session) click to toggle source
# File lib/escualo/artifact.rb, line 3
def self.setup(session)
  session.tell_all! 'mkdir -p /var/repo/',
                    'mkdir -p /var/scripts/'
end