capistrano-platform-resources 0.1.1 → 0.1.2
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/capistrano-platform-resources.gemspec +0 -3
- data/lib/capistrano/configuration/resources/platform_resources.rb +94 -26
- data/lib/capistrano/configuration/resources/platform_resources/version.rb +1 -1
- data/test/centos6-64/.gitignore +1 -1
- data/test/centos6-64/run.sh +2 -2
- data/test/config/deploy.rb +5 -1
- data/test/precise64/.gitignore +1 -1
- data/test/precise64/run.sh +2 -2
- metadata +2 -50
@@ -16,7 +16,4 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.version = Capistrano::Configuration::Resources::PlatformResources::VERSION
|
17
17
|
|
18
18
|
gem.add_dependency("capistrano")
|
19
|
-
gem.add_development_dependency("net-scp", "~> 1.0.4")
|
20
|
-
gem.add_development_dependency("net-ssh", "~> 2.2.2")
|
21
|
-
gem.add_development_dependency("vagrant", "~> 1.0.6")
|
22
19
|
end
|
@@ -21,30 +21,68 @@ module Capistrano
|
|
21
21
|
EOS
|
22
22
|
end
|
23
23
|
|
24
|
-
_cset(:
|
25
|
-
|
26
|
-
options = options.dup
|
27
|
-
family = ( options.delete(:family) || fetch(:platform_family) )
|
28
|
-
case family
|
24
|
+
_cset(:platform_lsb_packages) {
|
25
|
+
case platform_family
|
29
26
|
when :debian
|
30
|
-
|
31
|
-
if test -f /etc/lsb-release && grep -i -q DISTRIB_ID=Ubuntu /etc/lsb-release; then
|
32
|
-
echo ubuntu;
|
33
|
-
else
|
34
|
-
echo debian;
|
35
|
-
fi;
|
36
|
-
EOS
|
27
|
+
%w(lsb-release lsb-core)
|
37
28
|
when :redhat
|
38
|
-
|
39
|
-
if test -f /etc/centos-release; then
|
40
|
-
echo centos;
|
41
|
-
else
|
42
|
-
echo redhat;
|
43
|
-
fi;
|
44
|
-
EOS
|
29
|
+
%w(redhat-lsb)
|
45
30
|
else
|
46
|
-
|
31
|
+
[]
|
47
32
|
end
|
33
|
+
}
|
34
|
+
|
35
|
+
def lsb_setup(options={})
|
36
|
+
if fetch(:platform_setup, false)
|
37
|
+
false
|
38
|
+
else
|
39
|
+
lsb_setup!(options)
|
40
|
+
set(:platform_setup, true)
|
41
|
+
true
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def lsb_setup!(options={})
|
46
|
+
platform.packages.install(platform_lsb_packages, options)
|
47
|
+
end
|
48
|
+
|
49
|
+
_cset(:platform_identifier) { platform.identifier(fetch(:platform_identifier_options, {})) }
|
50
|
+
def identifier(options={})
|
51
|
+
options = options.dup
|
52
|
+
options.delete(:family) # for backward compatibility
|
53
|
+
lsb_identifier(options)
|
54
|
+
end
|
55
|
+
|
56
|
+
def lsb_identifier(options={})
|
57
|
+
lsb_setup(options)
|
58
|
+
identifier = capture("lsb_release --id --short || true", options).strip.downcase
|
59
|
+
not(codename.empty?) ? identifier.to_sym : :unknown
|
60
|
+
end
|
61
|
+
|
62
|
+
_cset(:platform_release) { platform.release(fetch(:platform_release_options, {})) }
|
63
|
+
def release(options={})
|
64
|
+
options = options.dup
|
65
|
+
options.delete(:family) # for backward compatibility
|
66
|
+
lsb_release(options)
|
67
|
+
end
|
68
|
+
|
69
|
+
def lsb_release(options={})
|
70
|
+
lsb_setup(options)
|
71
|
+
release = capture("lsb_release --release --short || true", options).strip.downcase
|
72
|
+
not(release.empty?) ? release.to_sym : :unknown
|
73
|
+
end
|
74
|
+
|
75
|
+
_cset(:platform_codename) { platform.codename(fetch(:platform_codename_options, {})) }
|
76
|
+
def codename(options={})
|
77
|
+
options = options.dup
|
78
|
+
options.delete(:family) # for backward compatibility
|
79
|
+
lsb_codename(options)
|
80
|
+
end
|
81
|
+
|
82
|
+
def lsb_codename(options={})
|
83
|
+
lsb_setup(options)
|
84
|
+
codename = capture("lsb_release --codename --short || true", options).strip.downcase
|
85
|
+
not(codename.empty?) ? codename.to_sym : :unknown
|
48
86
|
end
|
49
87
|
|
50
88
|
_cset(:platform_architecture) { platform.architecture(fetch(:platform_architecture_options, {})) }
|
@@ -76,7 +114,15 @@ module Capistrano
|
|
76
114
|
end
|
77
115
|
|
78
116
|
def install(packages=[], options={})
|
79
|
-
|
117
|
+
if installed?(packages, options)
|
118
|
+
false
|
119
|
+
else
|
120
|
+
install!(packages, options)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
def install!(packages=[], options={})
|
125
|
+
update(options)
|
80
126
|
options = options.dup
|
81
127
|
packages = [ packages ].flatten
|
82
128
|
family = ( options.delete(:family) || fetch(:platform_family) )
|
@@ -91,6 +137,14 @@ module Capistrano
|
|
91
137
|
end
|
92
138
|
|
93
139
|
def uninstall(packages=[], options={})
|
140
|
+
if installed?(packages, options)
|
141
|
+
uninstall!(packages, options)
|
142
|
+
else
|
143
|
+
false
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
def uninstall!(packages=[], options={})
|
94
148
|
options = options.dup
|
95
149
|
packages = [ packages ].flatten
|
96
150
|
family = ( options.delete(:family) || fetch(:platform_family) )
|
@@ -104,14 +158,18 @@ module Capistrano
|
|
104
158
|
end
|
105
159
|
end
|
106
160
|
|
107
|
-
def
|
108
|
-
|
109
|
-
|
161
|
+
def update(options={})
|
162
|
+
if fetch(:platform_packages_updated, false)
|
163
|
+
false
|
164
|
+
else
|
165
|
+
update!(options)
|
110
166
|
set(:platform_packages_updated, true)
|
167
|
+
true
|
111
168
|
end
|
112
169
|
end
|
170
|
+
alias try_update update # for backward compatibility before 0.1.2
|
113
171
|
|
114
|
-
def update(options={})
|
172
|
+
def update!(options={})
|
115
173
|
options = options.dup
|
116
174
|
family = ( options.delete(:family) || fetch(:platform_family) )
|
117
175
|
case family
|
@@ -123,7 +181,17 @@ module Capistrano
|
|
123
181
|
end
|
124
182
|
|
125
183
|
def upgrade(options={})
|
126
|
-
|
184
|
+
if fetch(:platform_packages_upgraded, false)
|
185
|
+
false
|
186
|
+
else
|
187
|
+
upgrade!(options)
|
188
|
+
set(:platform_packages_upgraded, true)
|
189
|
+
true
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
def upgrade!(options={})
|
194
|
+
update(options)
|
127
195
|
options = options.dup
|
128
196
|
family = ( options.delete(:family) || fetch(:platform_family) )
|
129
197
|
case family
|
data/test/centos6-64/.gitignore
CHANGED
data/test/centos6-64/run.sh
CHANGED
data/test/config/deploy.rb
CHANGED
@@ -8,7 +8,11 @@ set :scm, :none
|
|
8
8
|
set :use_sudo, false
|
9
9
|
set :user, "vagrant"
|
10
10
|
set :password, "vagrant"
|
11
|
-
set :ssh_options, {
|
11
|
+
set :ssh_options, {
|
12
|
+
:auth_methods => %w(publickey password),
|
13
|
+
:keys => File.join(ENV["HOME"], ".vagrant.d", "insecure_private_key"),
|
14
|
+
:user_known_hosts_file => "/dev/null"
|
15
|
+
}
|
12
16
|
|
13
17
|
role :web, "192.168.33.10"
|
14
18
|
role :app, "192.168.33.10"
|
data/test/precise64/.gitignore
CHANGED
data/test/precise64/run.sh
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-platform-resources
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-04-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capistrano
|
@@ -27,54 +27,6 @@ dependencies:
|
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0'
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: net-scp
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ~>
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: 1.0.4
|
38
|
-
type: :development
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: 1.0.4
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: net-ssh
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ~>
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 2.2.2
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 2.2.2
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: vagrant
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ~>
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 1.0.6
|
70
|
-
type: :development
|
71
|
-
prerelease: false
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: 1.0.6
|
78
30
|
description: A sort of utilities which helps you to manage platform resources.
|
79
31
|
email:
|
80
32
|
- yamashita@geishatokyo.com
|