Module: Conan::Deployment::Helpers

Defined in:
lib/conan/deployment.rb

Instance Method Summary collapse

Instance Method Details

#_cset(name, *args, &block) ⇒ Object



4
5
6
7
8
# File 'lib/conan/deployment.rb', line 4

def _cset(name, *args, &block)
  unless exists?(name)
    set(name, *args, &block)
  end
end

#add_role(*roles) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/conan/deployment.rb', line 41

def add_role(*roles)
  roles = Hash.new{ |h,k| h[k] = [] }

  #init this manually otherwise we can run into problems where no server has the app role and 
  #the above initialiser can't run while iterating over it
  roles[:app] = []

  server_config.each do |s, c|
    c["roles"].each do |r|
      roles[r.to_sym] << s
    end
  end unless server_config.nil?

  roles.each do |r, ss|
    next unless roles.include?(r)
    ss.each_with_index do |s, i|
      role r, s, :primary => (i == 0), :no_release => !roles[:app].include?(s)
    end
  end
end

#close_sessionsObject



20
21
22
23
# File 'lib/conan/deployment.rb', line 20

def close_sessions
  sessions.values.each { |session| session.close }
  sessions.clear
end

#git_log(from, to) ⇒ Object



33
34
35
# File 'lib/conan/deployment.rb', line 33

def git_log(from, to)
  run_locally("git log #{real_revision(from)}..#{real_revision(to)}")
end

#git_tag(source, dest) ⇒ Object



25
26
27
28
29
30
# File 'lib/conan/deployment.rb', line 25

def git_tag(source, dest)
  system "git fetch origin --tags"
  sha1 = `git rev-parse "#{source}"`
  system %{git update-ref "refs/tags/#{dest}" #{sha1}}
  system %{git push -f origin tag #{dest}}
end

#real_revision(tag) ⇒ Object



37
38
39
# File 'lib/conan/deployment.rb', line 37

def real_revision(tag)
  source.local.query_revision(tag) { |cmd| with_env("LC_ALL", "C") { run_locally(cmd) } }
end

#with_user(new_user, &blk) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/conan/deployment.rb', line 10

def with_user(new_user, &blk)
  old_user = user
  return if old_user == new_user
  set :user, new_user
  close_sessions
  yield
  set :user, old_user
  close_sessions
end