Module: Conan::Deployment::Helpers
- Defined in:
- lib/conan/deployment.rb
Instance Method Summary collapse
- #_cset(name, *args, &block) ⇒ Object
- #add_role(*roles) ⇒ Object
- #close_sessions ⇒ Object
- #git_log(from, to) ⇒ Object
- #git_tag(source, dest) ⇒ Object
- #real_revision(tag) ⇒ Object
- #with_user(new_user, &blk) ⇒ Object
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_sessions ⇒ Object
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 |