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