Class: Depl::Main
- Inherits:
-
Object
- Object
- Depl::Main
- Defined in:
- lib/depl/main.rb
Instance Method Summary collapse
- #commit_count ⇒ Object
- #deploy_branch ⇒ Object
- #diff ⇒ Object
- #environment ⇒ Object
-
#initialize(options) ⇒ Main
constructor
A new instance of Main.
- #local_sha ⇒ Object
- #older_local_sha ⇒ Object
- #prefix ⇒ Object
- #remote_sha ⇒ Object
- #reverse_diff ⇒ Object
- #run! ⇒ Object
- #save_sha ⇒ Object
- #up_to_date ⇒ Object
Constructor Details
#initialize(options) ⇒ Main
3 4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/depl/main.rb', line 3 def initialize() config_path = [:config_file] || "./.deploy" @config = [:config] if File.exist? config_path @config ||= YAML::load_file(config_path) else @config ||= {} end = end |
Instance Method Details
#commit_count ⇒ Object
73 74 75 |
# File 'lib/depl/main.rb', line 73 def commit_count diff.split("\n").size end |
#deploy_branch ⇒ Object
24 25 26 |
# File 'lib/depl/main.rb', line 24 def deploy_branch "#{prefix}#{environment}" end |
#diff ⇒ Object
60 61 62 |
# File 'lib/depl/main.rb', line 60 def diff execute "git log --pretty=format:' %h %<(20)%an %ar\t %s' -10 #{remote_sha}..#{local_sha}" end |
#environment ⇒ Object
16 17 18 |
# File 'lib/depl/main.rb', line 16 def environment [:environment] end |
#local_sha ⇒ Object
54 55 56 57 58 |
# File 'lib/depl/main.rb', line 54 def local_sha rev = [:rev] || @config[:branch] || 'head' sha = execute("git rev-parse -q --verify #{rev}").chomp sha if sha != "" end |
#older_local_sha ⇒ Object
68 69 70 71 |
# File 'lib/depl/main.rb', line 68 def older_local_sha return false unless remote_sha execute("git merge-base --is-ancestor #{local_sha} #{remote_sha}") && $?.exitstatus == 0 end |
#prefix ⇒ Object
20 21 22 |
# File 'lib/depl/main.rb', line 20 def prefix @config[:prefix] || "deploy-" end |
#remote_sha ⇒ Object
44 45 46 47 48 |
# File 'lib/depl/main.rb', line 44 def remote_sha `git fetch origin` sha = execute("git rev-parse -q --verify origin/#{deploy_branch}").chomp sha if sha != "" end |
#reverse_diff ⇒ Object
64 65 66 |
# File 'lib/depl/main.rb', line 64 def reverse_diff execute "git log --pretty=format:' %h %<(20)%an %ar\t %s' -10 #{local_sha}..#{remote_sha}" end |
#run! ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/depl/main.rb', line 32 def run! if @config['before_hook'] `#{@config['before_hook']}` end save_sha if @config['after_hook'] `#{@config['after_hook']}` end end |
#save_sha ⇒ Object
28 29 30 |
# File 'lib/depl/main.rb', line 28 def save_sha execute("git push --force origin #{local_sha}:refs/heads/#{deploy_branch}") end |
#up_to_date ⇒ Object
50 51 52 |
# File 'lib/depl/main.rb', line 50 def up_to_date local_sha == remote_sha end |