Class: Pave::Remote
- Inherits:
-
Object
show all
- Includes:
- Shell
- Defined in:
- lib/pave/remote.rb
Class Method Summary
collapse
Methods included from Shell
#file_insert, included, #sh, #shell
Class Method Details
.deploy(remote = "live", branch = "master") ⇒ Object
20
21
22
|
# File 'lib/pave/remote.rb', line 20
def self.deploy(remote="live", branch="master")
sh "git push #{remote} #{branch}"
end
|
.directory(remote = "live") ⇒ Object
38
39
40
|
# File 'lib/pave/remote.rb', line 38
def self.directory(remote="live")
self.url(remote).split(":").last.gsub("/deploy.git", "")
end
|
.server(remote = "live") ⇒ Object
34
35
36
|
# File 'lib/pave/remote.rb', line 34
def self.server(remote="live")
self.url(remote).split(":").first
end
|
.setup ⇒ Object
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# File 'lib/pave/remote.rb', line 5
def self.setup
server = ask "Username and hostname of the remote server (e.g. [email protected]): "
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") ⇒ Object
24
25
26
27
28
29
30
31
32
|
# 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
|