vanagon 0.3.18
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.
- checksums.yaml +7 -0
- data/LICENSE +13 -0
- data/README.md +175 -0
- data/bin/build +33 -0
- data/bin/devkit +22 -0
- data/bin/repo +26 -0
- data/bin/ship +15 -0
- data/lib/vanagon.rb +8 -0
- data/lib/vanagon/common.rb +2 -0
- data/lib/vanagon/common/pathname.rb +87 -0
- data/lib/vanagon/common/user.rb +25 -0
- data/lib/vanagon/component.rb +157 -0
- data/lib/vanagon/component/dsl.rb +307 -0
- data/lib/vanagon/component/source.rb +66 -0
- data/lib/vanagon/component/source/git.rb +60 -0
- data/lib/vanagon/component/source/http.rb +158 -0
- data/lib/vanagon/driver.rb +112 -0
- data/lib/vanagon/engine/base.rb +82 -0
- data/lib/vanagon/engine/docker.rb +40 -0
- data/lib/vanagon/engine/local.rb +40 -0
- data/lib/vanagon/engine/pooler.rb +85 -0
- data/lib/vanagon/errors.rb +28 -0
- data/lib/vanagon/extensions/string.rb +11 -0
- data/lib/vanagon/optparse.rb +62 -0
- data/lib/vanagon/platform.rb +245 -0
- data/lib/vanagon/platform/deb.rb +71 -0
- data/lib/vanagon/platform/dsl.rb +293 -0
- data/lib/vanagon/platform/osx.rb +100 -0
- data/lib/vanagon/platform/rpm.rb +76 -0
- data/lib/vanagon/platform/rpm/wrl.rb +39 -0
- data/lib/vanagon/platform/solaris_10.rb +182 -0
- data/lib/vanagon/platform/solaris_11.rb +138 -0
- data/lib/vanagon/platform/swix.rb +35 -0
- data/lib/vanagon/project.rb +251 -0
- data/lib/vanagon/project/dsl.rb +218 -0
- data/lib/vanagon/utilities.rb +299 -0
- data/spec/fixures/component/invalid-test-fixture.json +3 -0
- data/spec/fixures/component/mcollective.service +1 -0
- data/spec/fixures/component/test-fixture.json +4 -0
- data/spec/lib/vanagon/common/pathname_spec.rb +103 -0
- data/spec/lib/vanagon/common/user_spec.rb +36 -0
- data/spec/lib/vanagon/component/dsl_spec.rb +443 -0
- data/spec/lib/vanagon/component/source/git_spec.rb +19 -0
- data/spec/lib/vanagon/component/source/http_spec.rb +43 -0
- data/spec/lib/vanagon/component/source_spec.rb +99 -0
- data/spec/lib/vanagon/component_spec.rb +22 -0
- data/spec/lib/vanagon/engine/base_spec.rb +40 -0
- data/spec/lib/vanagon/engine/docker_spec.rb +40 -0
- data/spec/lib/vanagon/engine/pooler_spec.rb +54 -0
- data/spec/lib/vanagon/platform/deb_spec.rb +60 -0
- data/spec/lib/vanagon/platform/dsl_spec.rb +128 -0
- data/spec/lib/vanagon/platform/rpm_spec.rb +41 -0
- data/spec/lib/vanagon/platform/solaris_11_spec.rb +44 -0
- data/spec/lib/vanagon/platform_spec.rb +53 -0
- data/spec/lib/vanagon/project/dsl_spec.rb +203 -0
- data/spec/lib/vanagon/project_spec.rb +44 -0
- data/spec/lib/vanagon/utilities_spec.rb +140 -0
- data/templates/Makefile.erb +116 -0
- data/templates/deb/changelog.erb +5 -0
- data/templates/deb/conffiles.erb +3 -0
- data/templates/deb/control.erb +21 -0
- data/templates/deb/dirs.erb +3 -0
- data/templates/deb/docs.erb +1 -0
- data/templates/deb/install.erb +3 -0
- data/templates/deb/postinst.erb +46 -0
- data/templates/deb/postrm.erb +15 -0
- data/templates/deb/prerm.erb +17 -0
- data/templates/deb/rules.erb +25 -0
- data/templates/osx/postinstall.erb +24 -0
- data/templates/osx/preinstall.erb +19 -0
- data/templates/osx/project-installer.xml.erb +19 -0
- data/templates/rpm/project.spec.erb +217 -0
- data/templates/solaris/10/depend.erb +3 -0
- data/templates/solaris/10/pkginfo.erb +13 -0
- data/templates/solaris/10/postinstall.erb +37 -0
- data/templates/solaris/10/preinstall.erb +7 -0
- data/templates/solaris/10/preremove.erb +6 -0
- data/templates/solaris/10/proto.erb +5 -0
- data/templates/solaris/11/p5m.erb +73 -0
- metadata +172 -0
@@ -0,0 +1,13 @@
|
|
1
|
+
PKG="<%= @name %>"
|
2
|
+
NAME="<%= @name %> - <%= @homepage %>"
|
3
|
+
VERSION=<%= @version %>-<%= @release %>
|
4
|
+
ARCH=<%= @noarch ? 'all' : @platform.architecture %>
|
5
|
+
CLASSES=none
|
6
|
+
CATEGORY=application
|
7
|
+
VENDOR=<%= @vendor %>
|
8
|
+
PSTAMP=<%= Time.now.strftime('%Y-%m-%d.%H%M%S') %>
|
9
|
+
EMAIL=<%= @vendor.match(/<([^>]*)>/)[1] %>
|
10
|
+
ISTATES=S s 1 2 3
|
11
|
+
RSTATES=S s 1 2 3
|
12
|
+
BASEDIR=/
|
13
|
+
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/usr/bin/bash
|
2
|
+
|
3
|
+
<%- get_services.each do |service| -%>
|
4
|
+
# Importing service <%= service.name %>
|
5
|
+
/usr/sbin/svccfg import <%= service.service_file %> || true
|
6
|
+
<%- end -%>
|
7
|
+
|
8
|
+
# Move any new configfiles into place
|
9
|
+
<%- get_configfiles.each do |config|
|
10
|
+
dest_file = config.path.gsub(/\.pristine$/, '') -%>
|
11
|
+
|
12
|
+
if [ -f "<%= dest_file %>" ]; then
|
13
|
+
echo "Detected file at '<%= dest_file %>'; updated file at '<%= config.path %>'."
|
14
|
+
else
|
15
|
+
cp -pr '<%= config.path %>' '<%= dest_file %>'
|
16
|
+
fi
|
17
|
+
|
18
|
+
<%- end -%>
|
19
|
+
|
20
|
+
# Set up any specific permissions needed...
|
21
|
+
<%- (get_directories + get_configfiles + get_files).select { |pathname| pathname.has_overrides? }.uniq.each do |file_or_directory| -%>
|
22
|
+
<%= "chmod '#{file_or_directory.mode}' '#{file_or_directory.path}'" if file_or_directory.mode %>
|
23
|
+
<%- if file_or_directory.owner -%>
|
24
|
+
if getent passwd '<%= file_or_directory.owner %>' &> /dev/null; then
|
25
|
+
chown '<%= file_or_directory.owner %>' '<%= file_or_directory.path %>'
|
26
|
+
else
|
27
|
+
echo "Error updating '<%= file_or_directory.path %>': user '<%= file_or_directory.owner %>' does not exist."
|
28
|
+
fi
|
29
|
+
<%- end -%>
|
30
|
+
<%- if file_or_directory.group -%>
|
31
|
+
if getent group '<%= file_or_directory.group %>' &> /dev/null; then
|
32
|
+
chgrp '<%= file_or_directory.group %>' '<%= file_or_directory.path %>'
|
33
|
+
else
|
34
|
+
echo "Error updating '<%= file_or_directory.path %>': group '<%= file_or_directory.group %>' does not exist."
|
35
|
+
fi
|
36
|
+
<%- end -%>
|
37
|
+
<%- end -%>
|
@@ -0,0 +1,73 @@
|
|
1
|
+
set name=pkg.fmri value="<%= @name %>@<%= @platform.ips_version(@version, @release) %>"
|
2
|
+
set name=pkg.summary value="<%= @description.lines.first.chomp %>"
|
3
|
+
set name=pkg.human-version value="<%= @version %>"
|
4
|
+
set name=pkg.description value="<%= @description %>"
|
5
|
+
set name=info.classification value="org.opensolaris.category.2008:System/Administration and Configuration"
|
6
|
+
set name=org.opensolaris.consolidation value="<%= @name %>"
|
7
|
+
set name=description value="<%= @description %>"
|
8
|
+
set name=variant.opensolaris.zone value=global value=nonglobal
|
9
|
+
<%- unless @noarch -%>
|
10
|
+
set name=variant.arch value="<%= @platform.architecture %>"
|
11
|
+
<%- end -%>
|
12
|
+
|
13
|
+
<%
|
14
|
+
def strip_and_escape(str)
|
15
|
+
Regexp.escape(str.sub(/^\//, ''))
|
16
|
+
end
|
17
|
+
%>
|
18
|
+
|
19
|
+
# Add any needed dependencies
|
20
|
+
<%- get_requires.each do |requirement| -%>
|
21
|
+
depend fmri=pkg:/<%= requirement %> type=require
|
22
|
+
<%- end -%>
|
23
|
+
|
24
|
+
<%- get_root_directories.each do |dir| -%>
|
25
|
+
<transform dir path=<%= strip_and_escape(dir.split('/')[0..-2].join('/')) %>$ -> drop>
|
26
|
+
<%- end -%>
|
27
|
+
|
28
|
+
<%- if has_services? -%>
|
29
|
+
# Make sure smf manifests cause manifest-import to happen
|
30
|
+
<transform file path=(var|lib)/svc/manifest/.*\.xml$ -> default restart_fmri svc:/system/manifest-import:default>
|
31
|
+
<transform dir path=(var|lib)/svc/manifest$ -> drop>
|
32
|
+
set name=org.opensolaris.smf.fmri <%= get_services.map {|service| "value=svc:/#{service.name}"}.join(" ") %>
|
33
|
+
<%- end -%>
|
34
|
+
|
35
|
+
# Move the bill-of-materials into a docdir for the package to avoid conflicts
|
36
|
+
<transform file path=bill-of-materials$ -> set path usr/share/doc/<%= @name %>/bill-of-materials>
|
37
|
+
|
38
|
+
<%- get_configfiles.each do |config| -%>
|
39
|
+
# Preserve the old conf file on upgrade
|
40
|
+
<transform file path=<%= strip_and_escape(config.path) %>$ -> add preserve renamenew>
|
41
|
+
<%- end -%>
|
42
|
+
|
43
|
+
# Set any required owner, group or mode transformations
|
44
|
+
<%- (get_configfiles + get_files).select { |pathname| pathname.has_overrides? }.uniq.each do |file| -%>
|
45
|
+
<%- if file.group -%>
|
46
|
+
<transform file path=<%= strip_and_escape(file.path) %>$ -> set group <%= file.group %>>
|
47
|
+
<%- end -%>
|
48
|
+
<%- if file.owner -%>
|
49
|
+
<transform file path=<%= strip_and_escape(file.path) %>$ -> set owner <%= file.owner %>>
|
50
|
+
<%- end -%>
|
51
|
+
<%- if file.mode -%>
|
52
|
+
<transform file path=<%= strip_and_escape(file.path) %>$ -> set mode <%= file.mode %>>
|
53
|
+
<%- end -%>
|
54
|
+
<%- end -%>
|
55
|
+
|
56
|
+
# Set any required owner, group or mode transformations
|
57
|
+
<%- get_directories.select { |pathname| pathname.has_overrides? }.uniq.each do |dir| -%>
|
58
|
+
<%- if dir.group -%>
|
59
|
+
<transform dir path=<%= strip_and_escape(dir.path) %>$ -> set group <%= dir.group %>>
|
60
|
+
<%- end -%>
|
61
|
+
<%- if dir.owner -%>
|
62
|
+
<transform dir path=<%= strip_and_escape(dir.path) %>$ -> set owner <%= dir.owner %>>
|
63
|
+
<%- end -%>
|
64
|
+
<%- if dir.mode -%>
|
65
|
+
<transform dir path=<%= strip_and_escape(dir.path) %>$ -> set mode <%= dir.mode %>>
|
66
|
+
<%- end -%>
|
67
|
+
<%- end -%>
|
68
|
+
|
69
|
+
<%- if @user -%>
|
70
|
+
# Create a user/group if desired
|
71
|
+
<%= @platform.add_group(@user) %>
|
72
|
+
<%= @platform.add_user(@user) %>
|
73
|
+
<%- end -%>
|
metadata
ADDED
@@ -0,0 +1,172 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: vanagon
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.18
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Puppet Labs
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-10-16 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rspec
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: yard
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.8'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.8'
|
41
|
+
description: Vanagon is a tool to build a single package out of a project, which can
|
42
|
+
itself contain one or more components.
|
43
|
+
email: info@puppetlabs.com
|
44
|
+
executables:
|
45
|
+
- build
|
46
|
+
- ship
|
47
|
+
- repo
|
48
|
+
- devkit
|
49
|
+
extensions: []
|
50
|
+
extra_rdoc_files: []
|
51
|
+
files:
|
52
|
+
- LICENSE
|
53
|
+
- README.md
|
54
|
+
- bin/build
|
55
|
+
- bin/devkit
|
56
|
+
- bin/repo
|
57
|
+
- bin/ship
|
58
|
+
- lib/vanagon.rb
|
59
|
+
- lib/vanagon/common.rb
|
60
|
+
- lib/vanagon/common/pathname.rb
|
61
|
+
- lib/vanagon/common/user.rb
|
62
|
+
- lib/vanagon/component.rb
|
63
|
+
- lib/vanagon/component/dsl.rb
|
64
|
+
- lib/vanagon/component/source.rb
|
65
|
+
- lib/vanagon/component/source/git.rb
|
66
|
+
- lib/vanagon/component/source/http.rb
|
67
|
+
- lib/vanagon/driver.rb
|
68
|
+
- lib/vanagon/engine/base.rb
|
69
|
+
- lib/vanagon/engine/docker.rb
|
70
|
+
- lib/vanagon/engine/local.rb
|
71
|
+
- lib/vanagon/engine/pooler.rb
|
72
|
+
- lib/vanagon/errors.rb
|
73
|
+
- lib/vanagon/extensions/string.rb
|
74
|
+
- lib/vanagon/optparse.rb
|
75
|
+
- lib/vanagon/platform.rb
|
76
|
+
- lib/vanagon/platform/deb.rb
|
77
|
+
- lib/vanagon/platform/dsl.rb
|
78
|
+
- lib/vanagon/platform/osx.rb
|
79
|
+
- lib/vanagon/platform/rpm.rb
|
80
|
+
- lib/vanagon/platform/rpm/wrl.rb
|
81
|
+
- lib/vanagon/platform/solaris_10.rb
|
82
|
+
- lib/vanagon/platform/solaris_11.rb
|
83
|
+
- lib/vanagon/platform/swix.rb
|
84
|
+
- lib/vanagon/project.rb
|
85
|
+
- lib/vanagon/project/dsl.rb
|
86
|
+
- lib/vanagon/utilities.rb
|
87
|
+
- spec/fixures/component/invalid-test-fixture.json
|
88
|
+
- spec/fixures/component/mcollective.service
|
89
|
+
- spec/fixures/component/test-fixture.json
|
90
|
+
- spec/lib/vanagon/common/pathname_spec.rb
|
91
|
+
- spec/lib/vanagon/common/user_spec.rb
|
92
|
+
- spec/lib/vanagon/component/dsl_spec.rb
|
93
|
+
- spec/lib/vanagon/component/source/git_spec.rb
|
94
|
+
- spec/lib/vanagon/component/source/http_spec.rb
|
95
|
+
- spec/lib/vanagon/component/source_spec.rb
|
96
|
+
- spec/lib/vanagon/component_spec.rb
|
97
|
+
- spec/lib/vanagon/engine/base_spec.rb
|
98
|
+
- spec/lib/vanagon/engine/docker_spec.rb
|
99
|
+
- spec/lib/vanagon/engine/pooler_spec.rb
|
100
|
+
- spec/lib/vanagon/platform/deb_spec.rb
|
101
|
+
- spec/lib/vanagon/platform/dsl_spec.rb
|
102
|
+
- spec/lib/vanagon/platform/rpm_spec.rb
|
103
|
+
- spec/lib/vanagon/platform/solaris_11_spec.rb
|
104
|
+
- spec/lib/vanagon/platform_spec.rb
|
105
|
+
- spec/lib/vanagon/project/dsl_spec.rb
|
106
|
+
- spec/lib/vanagon/project_spec.rb
|
107
|
+
- spec/lib/vanagon/utilities_spec.rb
|
108
|
+
- templates/Makefile.erb
|
109
|
+
- templates/deb/changelog.erb
|
110
|
+
- templates/deb/conffiles.erb
|
111
|
+
- templates/deb/control.erb
|
112
|
+
- templates/deb/dirs.erb
|
113
|
+
- templates/deb/docs.erb
|
114
|
+
- templates/deb/install.erb
|
115
|
+
- templates/deb/postinst.erb
|
116
|
+
- templates/deb/postrm.erb
|
117
|
+
- templates/deb/prerm.erb
|
118
|
+
- templates/deb/rules.erb
|
119
|
+
- templates/osx/postinstall.erb
|
120
|
+
- templates/osx/preinstall.erb
|
121
|
+
- templates/osx/project-installer.xml.erb
|
122
|
+
- templates/rpm/project.spec.erb
|
123
|
+
- templates/solaris/10/depend.erb
|
124
|
+
- templates/solaris/10/pkginfo.erb
|
125
|
+
- templates/solaris/10/postinstall.erb
|
126
|
+
- templates/solaris/10/preinstall.erb
|
127
|
+
- templates/solaris/10/preremove.erb
|
128
|
+
- templates/solaris/10/proto.erb
|
129
|
+
- templates/solaris/11/p5m.erb
|
130
|
+
homepage: http://github.com/puppetlabs/vanagon
|
131
|
+
licenses:
|
132
|
+
- Apache-2.0
|
133
|
+
metadata: {}
|
134
|
+
post_install_message:
|
135
|
+
rdoc_options: []
|
136
|
+
require_paths:
|
137
|
+
- lib
|
138
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
148
|
+
requirements: []
|
149
|
+
rubyforge_project:
|
150
|
+
rubygems_version: 2.4.5.1
|
151
|
+
signing_key:
|
152
|
+
specification_version: 4
|
153
|
+
summary: All of your packages will fit into this van with this one simple trick.
|
154
|
+
test_files:
|
155
|
+
- spec/lib/vanagon/common/pathname_spec.rb
|
156
|
+
- spec/lib/vanagon/common/user_spec.rb
|
157
|
+
- spec/lib/vanagon/component/dsl_spec.rb
|
158
|
+
- spec/lib/vanagon/component/source/git_spec.rb
|
159
|
+
- spec/lib/vanagon/component/source/http_spec.rb
|
160
|
+
- spec/lib/vanagon/component/source_spec.rb
|
161
|
+
- spec/lib/vanagon/component_spec.rb
|
162
|
+
- spec/lib/vanagon/engine/base_spec.rb
|
163
|
+
- spec/lib/vanagon/engine/docker_spec.rb
|
164
|
+
- spec/lib/vanagon/engine/pooler_spec.rb
|
165
|
+
- spec/lib/vanagon/platform/deb_spec.rb
|
166
|
+
- spec/lib/vanagon/platform/dsl_spec.rb
|
167
|
+
- spec/lib/vanagon/platform/rpm_spec.rb
|
168
|
+
- spec/lib/vanagon/platform/solaris_11_spec.rb
|
169
|
+
- spec/lib/vanagon/platform_spec.rb
|
170
|
+
- spec/lib/vanagon/project/dsl_spec.rb
|
171
|
+
- spec/lib/vanagon/project_spec.rb
|
172
|
+
- spec/lib/vanagon/utilities_spec.rb
|