Module: Escualo::Artifact

Defined in:
lib/escualo/artifact.rb

Class Method Summary collapse

Class Method Details

.configure_monit(session, options) ⇒ Object



54
55
56
57
58
59
# 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) ⇒ Object



66
67
68
# 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) ⇒ Object



61
62
63
64
# 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) ⇒ Object



28
29
30
31
32
33
# 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) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
# 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) ⇒ Object



24
25
26
# 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) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# 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) ⇒ Object



35
36
37
# File 'lib/escualo/artifact.rb', line 35

def self.list(session)
  session.ask('ls /var/repo/').captures(/(.*)\.git/).map { $1 }
end

.present?(session, name) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/escualo/artifact.rb', line 20

def self.present?(session, name)
  list(session).include? name rescue false
end

.setup(session) ⇒ Object



3
4
5
6
# File 'lib/escualo/artifact.rb', line 3

def self.setup(session)
  session.tell_all! 'mkdir -p /var/repo/',
                    'mkdir -p /var/scripts/'
end