vanagon 0.41.0 → 0.42.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.
- checksums.yaml +4 -4
- data/lib/vanagon/component/dsl.rb +10 -0
- data/lib/vanagon/component/source/git.rb +1 -1
- data/lib/vanagon/component.rb +4 -0
- data/lib/vanagon/project.rb +12 -0
- data/resources/rpm/project.spec.erb +9 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6124c941f058f16b94d91df59c931cb9c53717b3968d455ecccb77a47def3374
|
4
|
+
data.tar.gz: fcf11d725a1920d08eb5119ef9ada27cafb076ff5e28a2b1cb4e672996a3c656
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6241005f7a94f68bfd385e00ac25d8ded7bfaa980e61dc1074f54a4c2411c0abda93aa73ecc542a387c88b127e076c8d37a5e907cc96333c3b538c51d4f3730
|
7
|
+
data.tar.gz: 9ecf812ede9986b0860e58996072b068acb3f4f6a5cf17ccf52bd09f88ce43dc39b09134ef2c8665998d965670d301a7813dab62997bff8d8163edddd203774e
|
@@ -503,6 +503,16 @@ class Vanagon
|
|
503
503
|
@component.activate_triggers << OpenStruct.new(:activate_name => activate_name)
|
504
504
|
end
|
505
505
|
|
506
|
+
# Add post installation action that must exit successfully before restarting the service
|
507
|
+
#
|
508
|
+
# @param pkg_state [Array] the state in which the scripts should execute. Can be
|
509
|
+
# one or multiple of 'install' and 'upgrade'.
|
510
|
+
# @param scripts [Array] the Bourne shell compatible scriptlet(s) to execute
|
511
|
+
def add_postinstall_required_action(pkg_state, scripts)
|
512
|
+
check_pkg_state_array(pkg_state)
|
513
|
+
@component.postinstall_required_actions << OpenStruct.new(:pkg_state => Array(pkg_state), :scripts => Array(scripts))
|
514
|
+
end
|
515
|
+
|
506
516
|
# Adds action to run during the postinstall phase of packaging
|
507
517
|
#
|
508
518
|
# @param pkg_state [Array] the state in which the scripts should execute. Can be
|
@@ -106,7 +106,7 @@ class Vanagon
|
|
106
106
|
@clone_options = opts[:clone_options] ||= {}
|
107
107
|
|
108
108
|
# We can test for Repo existence without cloning
|
109
|
-
raise Vanagon::InvalidRepo, "url is not a valid Git repo" unless valid_remote?
|
109
|
+
raise Vanagon::InvalidRepo, "\"#{url}\" is not a valid Git repo" unless valid_remote?
|
110
110
|
end
|
111
111
|
|
112
112
|
# Fetch the source. In this case, clone the repository into the workdir
|
data/lib/vanagon/component.rb
CHANGED
@@ -106,6 +106,9 @@ class Vanagon
|
|
106
106
|
# activate_triggers is a one-dimentional Array of Strings, describing scripts that
|
107
107
|
# should be executed when a package identifies an activate trigger
|
108
108
|
attr_accessor :activate_triggers
|
109
|
+
# postinstall_required_actions is a two-dimensional Array, describing scripts that
|
110
|
+
# must be executed successfully after a given component is installed.
|
111
|
+
attr_accessor :postinstall_required_actions
|
109
112
|
# postinstall_actions is a two-dimensional Array, describing scripts that
|
110
113
|
# should be executed after a given component is installed.
|
111
114
|
attr_accessor :postinstall_actions
|
@@ -176,6 +179,7 @@ class Vanagon
|
|
176
179
|
@install_triggers = []
|
177
180
|
@interest_triggers = []
|
178
181
|
@activate_triggers = []
|
182
|
+
@postinstall_required_actions = []
|
179
183
|
@postinstall_actions = []
|
180
184
|
@preremove_actions = []
|
181
185
|
@postremove_actions = []
|
data/lib/vanagon/project.rb
CHANGED
@@ -494,6 +494,18 @@ class Vanagon
|
|
494
494
|
end
|
495
495
|
end
|
496
496
|
|
497
|
+
# Collects the postinstall packaging actions that must exit successfully for the project and it's components
|
498
|
+
# for the specified packaging state
|
499
|
+
#
|
500
|
+
# @param pkg_state [String] the package state we want to run the given scripts for.
|
501
|
+
# Can be one of 'install' or 'upgrade'
|
502
|
+
# @return [String] string of Bourne shell compatible scriptlets to execute during the postinstall
|
503
|
+
# phase of packaging during the state of the system defined by pkg_state (either install or upgrade)
|
504
|
+
def get_postinstall_required_actions(pkg_state)
|
505
|
+
scripts = components.flat_map(&:postinstall_required_actions).compact.select { |s| s.pkg_state.include? pkg_state }.map(&:scripts)
|
506
|
+
return ': no postinstall required scripts provided' if scripts.empty?
|
507
|
+
scripts.join("\n")
|
508
|
+
end
|
497
509
|
# Collects the preremove packaging actions for the project and it's components
|
498
510
|
# for the specified packaging state
|
499
511
|
#
|
@@ -242,6 +242,15 @@ fi
|
|
242
242
|
|
243
243
|
|
244
244
|
%post
|
245
|
+
# Run required postinstall scripts on install if defined
|
246
|
+
if [ -e %{_localstatedir}/lib/rpm-state/%{name}/install ] ; then
|
247
|
+
<%= get_postinstall_required_actions("install") %>
|
248
|
+
fi
|
249
|
+
|
250
|
+
# Run required postinstall scripts on upgrade if defined
|
251
|
+
if [ -e %{_localstatedir}/lib/rpm-state/%{name}/upgrade ] ; then
|
252
|
+
<%= get_postinstall_required_actions("upgrade") %>
|
253
|
+
fi
|
245
254
|
<%- if @platform.is_aix? || (@platform.is_el? && @platform.os_version.to_i == 4) -%>
|
246
255
|
## EL-4 and AIX RPM don't have %posttrans, so we'll put them here
|
247
256
|
# Run postinstall scripts on install if defined
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vanagon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.42.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet By Perforce
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: docopt
|