gorilla-capistrano-recipes 0.1.5 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{gorilla-capistrano-recipes}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Benny Degezelle"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2010-08-24}
|
13
13
|
s.description = %q{This gem allows for a clean Capfile by setting up common capistrano stuff such as Git preferences, Radiant specifics, db dump helpers, passenger or lighty restart, ...}
|
14
14
|
s.email = %q{benny@gorilla-webdesign.be}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
"VERSION",
|
26
26
|
"gorilla-capistrano-recipes.gemspec",
|
27
27
|
"lib/gorilla-capistrano-recipes.rb",
|
28
|
+
"lib/gorilla-capistrano-recipes/deepmodules.rb",
|
28
29
|
"lib/gorilla-capistrano-recipes/deploy.rb",
|
29
30
|
"lib/gorilla-capistrano-recipes/lighttpd.rb",
|
30
31
|
"lib/gorilla-capistrano-recipes/mysql.rb",
|
@@ -37,7 +38,7 @@ Gem::Specification.new do |s|
|
|
37
38
|
s.homepage = %q{http://github.com/jomz/gorilla-capistrano-recipes}
|
38
39
|
s.rdoc_options = ["--charset=UTF-8"]
|
39
40
|
s.require_paths = ["lib"]
|
40
|
-
s.rubygems_version = %q{1.3.
|
41
|
+
s.rubygems_version = %q{1.3.7}
|
41
42
|
s.summary = %q{Common capistrano recipes for Gorilla sites}
|
42
43
|
s.test_files = [
|
43
44
|
"test/helper.rb",
|
@@ -48,7 +49,7 @@ Gem::Specification.new do |s|
|
|
48
49
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
49
50
|
s.specification_version = 3
|
50
51
|
|
51
|
-
if Gem::Version.new(Gem::
|
52
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
52
53
|
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
53
54
|
else
|
54
55
|
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'capistrano/recipes/deploy/scm/git'
|
2
|
+
require 'capistrano/recipes/deploy/strategy/remote_cache'
|
3
|
+
|
4
|
+
unless Capistrano::Configuration.respond_to?(:instance)
|
5
|
+
abort "capistrano/deepmodules requires Capistrano 2"
|
6
|
+
end
|
7
|
+
|
8
|
+
module Capistrano
|
9
|
+
module Deploy
|
10
|
+
|
11
|
+
module SCM
|
12
|
+
class Git < Base
|
13
|
+
|
14
|
+
# Simple interface to submodule commands
|
15
|
+
def submodule(subcmd)
|
16
|
+
"#{command} submodule #{subcmd}"
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
module Strategy
|
24
|
+
|
25
|
+
class RemoteCache < Remote
|
26
|
+
# Executes the SCM command for this strategy and writes the REVISION
|
27
|
+
# mark file to each host.
|
28
|
+
# We're overriding default deploy! method to inject a call to deep
|
29
|
+
# update the nested modules
|
30
|
+
def deploy!
|
31
|
+
update_repository_cache
|
32
|
+
update_submodules(repository_cache)
|
33
|
+
copy_repository_cache
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
# Inits and updates submodules in the repository at the path given
|
39
|
+
# via the argument, then recursively descends into all found
|
40
|
+
# submodule and updated them and all their down-levels, too
|
41
|
+
def update_submodules(dir)
|
42
|
+
logger.trace "updating submodule at #{dir}"
|
43
|
+
|
44
|
+
submodules = Array.new
|
45
|
+
run("cd #{dir} && #{source.submodule('status')}") do |state, stream, text|
|
46
|
+
# parsing the output of "git submodule status" command
|
47
|
+
# and collecting paths of all submodules into an array
|
48
|
+
submodules += text.split(/\n/).collect do |submodule|
|
49
|
+
$~[1] if submodule.rstrip =~ /.\w{40} ([^()]+)($| \(.*\)$)/
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
if submodules.size > 0 then
|
54
|
+
# init and update submodules if they were found
|
55
|
+
scm_run("cd #{dir} && "+
|
56
|
+
"#{source.submodule('init')} && "+
|
57
|
+
"#{source.submodule('update')} "
|
58
|
+
)
|
59
|
+
# and descend into them to repeat the process recursively
|
60
|
+
submodules.each { |submodule| update_submodules("#{dir}/#{submodule}") }
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -1,8 +1,7 @@
|
|
1
1
|
configuration = Capistrano::Configuration.respond_to?(:instance) ? Capistrano::Configuration.instance(:must_exist) : Capistrano.configuration(:must_exist)
|
2
2
|
|
3
3
|
configuration.load do
|
4
|
-
require "capistrano/deepmodules"
|
5
|
-
|
4
|
+
require "gorilla-capistrano-recipes/deepmodules"
|
6
5
|
default_run_options[:pty] = true
|
7
6
|
set :ssh_options, { :forward_agent => true}
|
8
7
|
set(:deploy_to) { "/home/#{user}/apps/#{application}" }
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gorilla-capistrano-recipes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 23
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Benny Degezelle
|
@@ -9,19 +15,23 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date:
|
18
|
+
date: 2010-08-24 00:00:00 +02:00
|
13
19
|
default_executable:
|
14
20
|
dependencies:
|
15
21
|
- !ruby/object:Gem::Dependency
|
16
22
|
name: thoughtbot-shoulda
|
17
|
-
|
18
|
-
|
19
|
-
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
20
26
|
requirements:
|
21
27
|
- - ">="
|
22
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
23
32
|
version: "0"
|
24
|
-
|
33
|
+
type: :development
|
34
|
+
version_requirements: *id001
|
25
35
|
description: This gem allows for a clean Capfile by setting up common capistrano stuff such as Git preferences, Radiant specifics, db dump helpers, passenger or lighty restart, ...
|
26
36
|
email: benny@gorilla-webdesign.be
|
27
37
|
executables: []
|
@@ -40,6 +50,7 @@ files:
|
|
40
50
|
- VERSION
|
41
51
|
- gorilla-capistrano-recipes.gemspec
|
42
52
|
- lib/gorilla-capistrano-recipes.rb
|
53
|
+
- lib/gorilla-capistrano-recipes/deepmodules.rb
|
43
54
|
- lib/gorilla-capistrano-recipes/deploy.rb
|
44
55
|
- lib/gorilla-capistrano-recipes/lighttpd.rb
|
45
56
|
- lib/gorilla-capistrano-recipes/mysql.rb
|
@@ -58,21 +69,27 @@ rdoc_options:
|
|
58
69
|
require_paths:
|
59
70
|
- lib
|
60
71
|
required_ruby_version: !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
61
73
|
requirements:
|
62
74
|
- - ">="
|
63
75
|
- !ruby/object:Gem::Version
|
76
|
+
hash: 3
|
77
|
+
segments:
|
78
|
+
- 0
|
64
79
|
version: "0"
|
65
|
-
version:
|
66
80
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
67
82
|
requirements:
|
68
83
|
- - ">="
|
69
84
|
- !ruby/object:Gem::Version
|
85
|
+
hash: 3
|
86
|
+
segments:
|
87
|
+
- 0
|
70
88
|
version: "0"
|
71
|
-
version:
|
72
89
|
requirements: []
|
73
90
|
|
74
91
|
rubyforge_project:
|
75
|
-
rubygems_version: 1.3.
|
92
|
+
rubygems_version: 1.3.7
|
76
93
|
signing_key:
|
77
94
|
specification_version: 3
|
78
95
|
summary: Common capistrano recipes for Gorilla sites
|