middleman-deploy/lib/middleman-deploy/strategies/git/submodule.rb
Cecile Veneziani 11860dd930 Refactoring
- Create a class per method
- Create a class per git strategy
- Extract USAGE into a file
- Refactor git and ftp/sftp methods
2014-01-16 16:52:52 +01:00

45 lines
1 KiB
Ruby

module Middleman
module Deploy
module Strategies
module Git
class Submodule < Base
def process
Dir.chdir(self.build_dir) do
checkout_branch
pull_submodule
commit_branch
end
commit_submodule
end
private
def commit_submodule
current_branch = `git rev-parse --abbrev-ref HEAD`
message = add_signature_to_commit_message('Deployed')
`git add #{self.build_dir}`
`git commit --allow-empty -m "#{message}"`
`git push origin #{current_branch}`
end
def pull_submodule
`git fetch`
`git stash`
`git rebase #{self.remote}/#{self.branch}`
`git stash pop`
if $?.exitstatus == 1
puts "Can't deploy! Please resolve conflicts. Then process to manual commit and push on #{self.branch} branch."
exit
end
end
end
end
end
end
end