class Pave::Remote
Public Class Methods
deploy(remote="live", branch="master")
click to toggle source
# File lib/pave/remote.rb, line 20 def self.deploy(remote="live", branch="master") sh "git push #{remote} #{branch}" end
directory(remote="live")
click to toggle source
# File lib/pave/remote.rb, line 38 def self.directory(remote="live") self.url(remote).split(":").last.gsub("/deploy.git", "") end
server(remote="live")
click to toggle source
# File lib/pave/remote.rb, line 34 def self.server(remote="live") self.url(remote).split(":").first end
setup()
click to toggle source
# File lib/pave/remote.rb, line 5 def self.setup server = ask "Username and hostname of the remote server (e.g. user@server.com): " folder = ask "Name of the remote directory (e.g. ~/webapps/appname): " remote = ask "Desired git remote name (e.g. live): " script = File.join(File.expand_path("../..", File.dirname(__FILE__)), "resources/deploy.sh") puts "Piping shell script to #{server} for setup." sh "ssh #{server} 'cd #{folder}; bash -s' < #{script}" sh "git remote remove #{remote}" sh "git remote add #{remote} #{server}:#{folder}/deploy.git" puts "Finished! You may now run `pave deploy` to deploy your application." end
url(remote="live")
click to toggle source
# File lib/pave/remote.rb, line 24 def self.url(remote="live") remotes = shell("git remote -v").output begin remotes.match(/#{remote}\s+(.*)\s+\(push\)/)[1] rescue NoMethodError puts "Could not find remote named #{remote}. Please run `pave deploy:setup` to create it." exit end end