promotion 1.4.2 → 1.4.3
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/CHANGELOG +3 -0
- data/lib/promotion/config.rb +2 -0
- data/lib/promotion/enforcer.rb +20 -0
- data/promotion.xsd +10 -0
- metadata +4 -4
data/CHANGELOG
CHANGED
data/lib/promotion/config.rb
CHANGED
@@ -34,6 +34,8 @@ module Files
|
|
34
34
|
Crontab = "/usr/bin/crontab"
|
35
35
|
# path to zip executable
|
36
36
|
Zip = "/usr/local/bin/zip -q "
|
37
|
+
# path to subversion (svn) executable
|
38
|
+
Svn = "/usr/local/bin/svn "
|
37
39
|
end
|
38
40
|
|
39
41
|
# A section of the configuration file that contains ERB template filenames
|
data/lib/promotion/enforcer.rb
CHANGED
@@ -114,6 +114,11 @@ class Enforcer
|
|
114
114
|
source = file.attributes["Source"] || file.parent.attributes["Source"] || DEFAULT_FILE_SOURCE
|
115
115
|
ensure_allfiles(path, owner, group, mode, source)
|
116
116
|
}
|
117
|
+
@spec.elements.each("/Specification/Subversion") { |svn|
|
118
|
+
folder = svn.elements["Folder"].text
|
119
|
+
url = svn.elements["Url"].text
|
120
|
+
svn_check_out(url, folder)
|
121
|
+
}
|
117
122
|
@spec.elements.each("/Specification/Zipfile") { |zipfile|
|
118
123
|
build_zip_file(zipfile)
|
119
124
|
}
|
@@ -285,6 +290,21 @@ class Enforcer
|
|
285
290
|
exit 1
|
286
291
|
end
|
287
292
|
end
|
293
|
+
|
294
|
+
# Check out a repository path to the specified folder
|
295
|
+
# or update it if it is already installed
|
296
|
+
def svn_check_out(url, folder)
|
297
|
+
begin
|
298
|
+
if system("#{::Files::Svn} info #{folder}") # already exists
|
299
|
+
system("#{::Files::Svn} up --force #{folder}")
|
300
|
+
else
|
301
|
+
system("#{::Files::Svn} co --force #{url} #{folder}")
|
302
|
+
end
|
303
|
+
rescue => e
|
304
|
+
$log.error("Unable to deploy #{url} into #{folder}\n#{e.message}\n#{e.backtrace}")
|
305
|
+
exit 1
|
306
|
+
end
|
307
|
+
end
|
288
308
|
|
289
309
|
# Creates a zip archive from the specified files
|
290
310
|
def build_zip_file(zipfile)
|
data/promotion.xsd
CHANGED
@@ -14,6 +14,7 @@
|
|
14
14
|
<xsd:element ref="Folders" minOccurs="0" maxOccurs="unbounded" />
|
15
15
|
<xsd:element ref="Files" minOccurs="0" maxOccurs="unbounded" />
|
16
16
|
<xsd:element ref="Allfiles" minOccurs="0" maxOccurs="unbounded" />
|
17
|
+
<xsd:element ref="Subversion" minOccurs="0" maxOccurs="unbounded" />
|
17
18
|
<xsd:element ref="Zipfile" minOccurs="0" maxOccurs="unbounded" />
|
18
19
|
<xsd:element ref="Sudoers" minOccurs="0" maxOccurs="1" />
|
19
20
|
<xsd:element ref="Daemon" minOccurs="0" maxOccurs="unbounded" />
|
@@ -107,6 +108,15 @@
|
|
107
108
|
</xsd:complexType>
|
108
109
|
</xsd:element>
|
109
110
|
|
111
|
+
<xsd:element name="Subversion">
|
112
|
+
<xsd:complexType>
|
113
|
+
<xsd:sequence>
|
114
|
+
<xsd:element ref="Folder" minOccurs="1" maxOccurs="1" />
|
115
|
+
<xsd:element name="Url" type="xsd:anyURI" minOccurs="1" maxOccurs="1" />
|
116
|
+
</xsd:sequence>
|
117
|
+
</xsd:complexType>
|
118
|
+
</xsd:element>
|
119
|
+
|
110
120
|
<xsd:element name="File">
|
111
121
|
<xsd:complexType>
|
112
122
|
<xsd:simpleContent>
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: promotion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 1.4.
|
9
|
+
- 3
|
10
|
+
version: 1.4.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Richard Kernahan
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2013-01-08 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: log4r
|