appbundle-updater 1.0.36 → 19.0.2.rc.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -18
- data/VERSION +1 -1
- data/appbundle-updater.gemspec +1 -1
- data/bin/appbundle-updater +114 -120
- data/lib/appbundle_updater/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7177a13d677886a6995b214512033d4aa3a4966c2d8907e384b8b850b46ae9d0
|
4
|
+
data.tar.gz: '072191040ef2bb340735b9a59c30bf3c8c31f9b88c937e3b934268d7635a1746'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 739c787f03c12ae9e9c8bad8417c4ab46f16764bea6595068031a6cd327ebd1bc45f63b67274c74e38b0775514034204f2719f25b4c77e1c8193bc221e2c9958
|
7
|
+
data.tar.gz: 6dec822ffbbde1ca3ea323dd6d59b49a0bd89aab050cf9036d318d2776b5739d897a49c93073c0ef9dfe06e81e8e1b966ce485394ba4ff81cf33392898b3f40f
|
data/CHANGELOG.md
CHANGED
@@ -1,32 +1,44 @@
|
|
1
1
|
# appbundle-updater Change Log
|
2
2
|
|
3
|
-
<!-- latest_release
|
4
|
-
## [
|
3
|
+
<!-- latest_release 19.0.2 -->
|
4
|
+
## [v19.0.2](https://github.com/chef/appbundle-updater/tree/v19.0.2) (2025-02-11)
|
5
5
|
|
6
6
|
#### Merged Pull Requests
|
7
|
-
-
|
7
|
+
- Delimit rc and version no as rc.1 in gemspec as using 'rc1' has not pushed the gem to artifactory [#116](https://github.com/chef/appbundle-updater/pull/116) ([neha-p6](https://github.com/neha-p6))
|
8
8
|
<!-- latest_release -->
|
9
9
|
|
10
|
-
<!-- release_rollup since=1.0.
|
10
|
+
<!-- release_rollup since=1.0.36 -->
|
11
11
|
### Changes not yet released to rubygems.org
|
12
12
|
|
13
13
|
#### Merged Pull Requests
|
14
|
-
-
|
15
|
-
-
|
16
|
-
-
|
17
|
-
-
|
18
|
-
-
|
19
|
-
-
|
20
|
-
-
|
21
|
-
- Update chefstyle requirement from 2.0.7 to 2.0.9 [#90](https://github.com/chef/appbundle-updater/pull/90) ([dependabot[bot]](https://github.com/dependabot[bot])) <!-- 1.0.29 -->
|
22
|
-
- Update chefstyle requirement from 2.0.5 to 2.0.7 [#87](https://github.com/chef/appbundle-updater/pull/87) ([dependabot[bot]](https://github.com/dependabot[bot])) <!-- 1.0.28 -->
|
23
|
-
- Update chefstyle requirement from 1.7.5 to 2.0.5 [#85](https://github.com/chef/appbundle-updater/pull/85) ([dependabot[bot]](https://github.com/dependabot[bot])) <!-- 1.0.27 -->
|
24
|
-
- Update parallel requirement from < 1.20 to < 1.21 [#81](https://github.com/chef/appbundle-updater/pull/81) ([dependabot[bot]](https://github.com/dependabot[bot])) <!-- 1.0.26 -->
|
25
|
-
- Upgrade to GitHub-native Dependabot [#80](https://github.com/chef/appbundle-updater/pull/80) ([dependabot-preview[bot]](https://github.com/dependabot-preview[bot])) <!-- 1.0.25 -->
|
26
|
-
- Update chefstyle requirement from 1.7.2 to 1.7.5 [#79](https://github.com/chef/appbundle-updater/pull/79) ([dependabot-preview[bot]](https://github.com/dependabot-preview[bot])) <!-- 1.0.24 -->
|
14
|
+
- Delimit rc and version no as rc.1 in gemspec as using 'rc1' has not pushed the gem to artifactory [#116](https://github.com/chef/appbundle-updater/pull/116) ([neha-p6](https://github.com/neha-p6)) <!-- 19.0.2 -->
|
15
|
+
- Add rc tag to the gem from gemspec instead of from VERSION file [#115](https://github.com/chef/appbundle-updater/pull/115) ([neha-p6](https://github.com/neha-p6)) <!-- 19.0.1 -->
|
16
|
+
- Add rc tag to the gem from gemspec instead of from VERSION file [#113](https://github.com/chef/appbundle-updater/pull/113) ([neha-p6](https://github.com/neha-p6)) <!-- 19.0.1 -->
|
17
|
+
- use habitat build instead of omnibus [#107](https://github.com/chef/appbundle-updater/pull/107) ([rishichawda](https://github.com/rishichawda)) <!-- 19.0.1 -->
|
18
|
+
- add release branches [#110](https://github.com/chef/appbundle-updater/pull/110) ([rishichawda](https://github.com/rishichawda)) <!-- 19.0.0 -->
|
19
|
+
- update ruby images to 3.0 and 3.1 [#108](https://github.com/chef/appbundle-updater/pull/108) ([rishichawda](https://github.com/rishichawda)) <!-- 1.0.38 -->
|
20
|
+
- update codeowners to include omnibus team & some cleanup [#103](https://github.com/chef/appbundle-updater/pull/103) ([vkarve-chef](https://github.com/vkarve-chef)) <!-- 1.0.37 -->
|
27
21
|
<!-- release_rollup -->
|
28
22
|
|
29
23
|
<!-- latest_stable_release -->
|
24
|
+
## [v1.0.36](https://github.com/chef/appbundle-updater/tree/v1.0.36) (2022-02-09)
|
25
|
+
|
26
|
+
#### Merged Pull Requests
|
27
|
+
- Update chefstyle requirement from 1.7.2 to 1.7.5 [#79](https://github.com/chef/appbundle-updater/pull/79) ([dependabot-preview[bot]](https://github.com/dependabot-preview[bot]))
|
28
|
+
- Upgrade to GitHub-native Dependabot [#80](https://github.com/chef/appbundle-updater/pull/80) ([dependabot-preview[bot]](https://github.com/dependabot-preview[bot]))
|
29
|
+
- Update parallel requirement from < 1.20 to < 1.21 [#81](https://github.com/chef/appbundle-updater/pull/81) ([dependabot[bot]](https://github.com/dependabot[bot]))
|
30
|
+
- Update chefstyle requirement from 1.7.5 to 2.0.5 [#85](https://github.com/chef/appbundle-updater/pull/85) ([dependabot[bot]](https://github.com/dependabot[bot]))
|
31
|
+
- Update chefstyle requirement from 2.0.5 to 2.0.7 [#87](https://github.com/chef/appbundle-updater/pull/87) ([dependabot[bot]](https://github.com/dependabot[bot]))
|
32
|
+
- Update chefstyle requirement from 2.0.7 to 2.0.9 [#90](https://github.com/chef/appbundle-updater/pull/90) ([dependabot[bot]](https://github.com/dependabot[bot]))
|
33
|
+
- Update chefstyle requirement from 2.0.9 to 2.1.0 [#92](https://github.com/chef/appbundle-updater/pull/92) ([dependabot[bot]](https://github.com/dependabot[bot]))
|
34
|
+
- Update chefstyle requirement from 2.1.0 to 2.1.1 [#93](https://github.com/chef/appbundle-updater/pull/93) ([dependabot[bot]](https://github.com/dependabot[bot]))
|
35
|
+
- Update chefstyle requirement from 2.1.1 to 2.1.3 [#95](https://github.com/chef/appbundle-updater/pull/95) ([dependabot[bot]](https://github.com/dependabot[bot]))
|
36
|
+
- remove bundle exec from rake install [#96](https://github.com/chef/appbundle-updater/pull/96) ([lamont-granquist](https://github.com/lamont-granquist))
|
37
|
+
- Need a version bump for release [#97](https://github.com/chef/appbundle-updater/pull/97) ([lamont-granquist](https://github.com/lamont-granquist))
|
38
|
+
- Update chefstyle requirement from 2.1.3 to 2.2.0 [#98](https://github.com/chef/appbundle-updater/pull/98) ([dependabot[bot]](https://github.com/dependabot[bot]))
|
39
|
+
- Use rake install:local [#100](https://github.com/chef/appbundle-updater/pull/100) ([lamont-granquist](https://github.com/lamont-granquist))
|
40
|
+
<!-- latest_stable_release -->
|
41
|
+
|
30
42
|
## [v1.0.23](https://github.com/chef/appbundle-updater/tree/v1.0.23) (2021-03-16)
|
31
43
|
|
32
44
|
#### Merged Pull Requests
|
@@ -45,7 +57,6 @@
|
|
45
57
|
- Update chefstyle requirement from 1.6.2 to 1.7.1 [#74](https://github.com/chef/appbundle-updater/pull/74) ([dependabot-preview[bot]](https://github.com/dependabot-preview[bot]))
|
46
58
|
- Update chefstyle requirement from 1.7.1 to 1.7.2 [#75](https://github.com/chef/appbundle-updater/pull/75) ([dependabot-preview[bot]](https://github.com/dependabot-preview[bot]))
|
47
59
|
- Add support for post bundle install hook [#76](https://github.com/chef/appbundle-updater/pull/76) ([lamont-granquist](https://github.com/lamont-granquist))
|
48
|
-
<!-- latest_stable_release -->
|
49
60
|
|
50
61
|
## [v1.0.8](https://github.com/chef/appbundle-updater/tree/v1.0.8) (2020-08-12)
|
51
62
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
19.0.2
|
data/appbundle-updater.gemspec
CHANGED
@@ -4,7 +4,7 @@ require "appbundle_updater/version"
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "appbundle-updater"
|
7
|
-
spec.version = AppbundleUpdater::VERSION
|
7
|
+
spec.version = "#{AppbundleUpdater::VERSION}.rc.1"
|
8
8
|
spec.authors = ["lamont-granquist"]
|
9
9
|
spec.email = ["lamont@chef.io"]
|
10
10
|
spec.description = %q{Updates appbundled apps in Chef's omnibus packages}
|
data/bin/appbundle-updater
CHANGED
@@ -24,22 +24,43 @@ require "rubygems/package"
|
|
24
24
|
require "zlib"
|
25
25
|
require "tempfile"
|
26
26
|
|
27
|
-
# FIXME: move to helpers mixin
|
28
|
-
|
29
27
|
def windows?
|
30
28
|
@windows ||= RUBY_PLATFORM =~ /mswin|mingw|windows/
|
31
29
|
end
|
32
30
|
|
33
|
-
def
|
31
|
+
def habitat
|
34
32
|
if windows?
|
35
|
-
Pathname.new(File.join(ENV["SYSTEMDRIVE"], "
|
33
|
+
Pathname.new(File.join(ENV["SYSTEMDRIVE"], "hab", "pkgs"))
|
36
34
|
else
|
37
|
-
Pathname.new(File.join("/
|
35
|
+
Pathname.new(File.join("/hab", "pkgs"))
|
38
36
|
end
|
39
37
|
end
|
40
38
|
|
39
|
+
# find the path to installed package in habitat package directory
|
40
|
+
# example, /hab/pkgs/{ARGV[0]}/{ARGV[1]}/x.x.x/xxxxxxxxxxxxxx
|
41
|
+
def pkg_path
|
42
|
+
pkg_path = habitat.join(ARGV[0], ARGV[1])
|
43
|
+
version = Dir.glob("#{pkg_path}/*").max
|
44
|
+
raise "No existing installation found for #{ARGV[0]}/#{ARGV[1]} in #{pkg_path}" if version.nil?
|
45
|
+
|
46
|
+
pkg_path = pkg_path.join(version)
|
47
|
+
build_no = Dir.glob("#{pkg_path}/*").max
|
48
|
+
raise "No existing installation found for #{ARGV[0]}/#{ARGV[1]}/#{version} in #{pkg_path}" if build_no.nil?
|
49
|
+
|
50
|
+
pkg_path.join(build_no)
|
51
|
+
end
|
52
|
+
|
53
|
+
def vendor_bin_dir
|
54
|
+
pkg_path.join("vendor", "bin")
|
55
|
+
end
|
56
|
+
|
41
57
|
def bin_dir
|
42
|
-
|
58
|
+
pkg_path.join("bin")
|
59
|
+
end
|
60
|
+
|
61
|
+
def ruby_pkg
|
62
|
+
# NOTE: this is sort of a 'hacky' way maybe to find which ruby binary to use?
|
63
|
+
File.read("#{pkg_path}/DEPS").split("\n").find { |l| l.start_with?(%r{(core|chef)\/ruby}) }
|
43
64
|
end
|
44
65
|
|
45
66
|
ENV["PATH"] = ( [ bin_dir ] + ENV["PATH"].split(File::PATH_SEPARATOR) ).join(File::PATH_SEPARATOR)
|
@@ -50,7 +71,7 @@ ENV_KEYS = %w{
|
|
50
71
|
|
51
72
|
def run(cmd)
|
52
73
|
ENV_KEYS.each { |key| ENV["_YOLO_#{key}"] = ENV[key]; ENV.delete(key) }
|
53
|
-
ENV["PATH"] =
|
74
|
+
ENV["PATH"] = habitat.join(ruby_pkg, "bin").to_s + File::PATH_SEPARATOR + ENV["_YOLO_PATH"]
|
54
75
|
puts " running: #{cmd}"
|
55
76
|
output = `#{cmd} 2>&1` # FIXME: bash/zsh-ism, will not work on csh
|
56
77
|
unless $?.exited? && $?.exitstatus == 0
|
@@ -66,7 +87,7 @@ TAR_LONGLINK = "././@LongLink".freeze
|
|
66
87
|
|
67
88
|
def install_package_dependencies
|
68
89
|
banner("Installing Packages")
|
69
|
-
case
|
90
|
+
case `hab pkg exec #{ARGV[0]}/#{ARGV[1]} ohai platform_family` # rubocop: disable Lint/LiteralAsCondition
|
70
91
|
when /debian/
|
71
92
|
ENV["DEBIAN_FRONTEND"] = "noninteractive"
|
72
93
|
run("apt-get -y update")
|
@@ -118,7 +139,7 @@ def extract_tgz(file, destination = ".")
|
|
118
139
|
end
|
119
140
|
end
|
120
141
|
|
121
|
-
App = Struct.new(:name, :
|
142
|
+
App = Struct.new(:name, :origin, :bundle_without, :install_commands, :gems) do
|
122
143
|
def initialize(*)
|
123
144
|
super
|
124
145
|
self.gems ||= {}
|
@@ -129,18 +150,18 @@ App = Struct.new(:name, :repo, :bundle_without, :install_commands, :gems) do
|
|
129
150
|
end
|
130
151
|
end
|
131
152
|
|
132
|
-
chef_install_command = "#{
|
153
|
+
chef_install_command = "#{vendor_bin_dir.join("rake")} install:local"
|
133
154
|
|
134
|
-
|
155
|
+
HABITAT_PACKAGES = [
|
135
156
|
App.new(
|
136
157
|
"berkshelf",
|
137
|
-
"
|
158
|
+
"chef",
|
138
159
|
"docs changelog",
|
139
|
-
"#{
|
160
|
+
"#{vendor_bin_dir.join("rake")} install"
|
140
161
|
),
|
141
162
|
App.new(
|
163
|
+
"chef-infra-client",
|
142
164
|
"chef",
|
143
|
-
"chef/chef",
|
144
165
|
"server docgen maintenance pry integration ci chefstyle profile",
|
145
166
|
chef_install_command,
|
146
167
|
{
|
@@ -150,67 +171,40 @@ CHEFDK_APPS = [
|
|
150
171
|
"inspec-core-bin" => %w{development},
|
151
172
|
}
|
152
173
|
),
|
153
|
-
App.new(
|
154
|
-
"chef-dk",
|
155
|
-
"chef/chef-dk",
|
156
|
-
"development test",
|
157
|
-
"#{bin_dir.join("bundle")} install",
|
158
|
-
{
|
159
|
-
"chef" => %w{docgen chefstyle omnibus_package},
|
160
|
-
"foodcritic" => %w{development test},
|
161
|
-
"test-kitchen" => %w{changelog debug docs development},
|
162
|
-
"inspec" => %w{deploy tools maintenance integration},
|
163
|
-
"chef-run" => %w{changelog docs debug},
|
164
|
-
"chef-cli" => %w{changelog docs debug},
|
165
|
-
"berkshelf" => %w{changelog docs debug development},
|
166
|
-
"chef-bin" => %w{changelog},
|
167
|
-
"chef-apply" => %w{changelog},
|
168
|
-
"chef-vault" => %w{changelog},
|
169
|
-
"ohai" => %w{changelog},
|
170
|
-
"opscode-pushy-client" => %w{changelog},
|
171
|
-
"cookstyle" => %w{changelog},
|
172
|
-
}
|
173
|
-
),
|
174
174
|
App.new(
|
175
175
|
"chef-vault",
|
176
|
-
"chef
|
176
|
+
"chef",
|
177
177
|
"development",
|
178
|
-
"#{
|
178
|
+
"#{vendor_bin_dir.join("rake")} install"
|
179
179
|
),
|
180
180
|
App.new(
|
181
181
|
"cookstyle",
|
182
|
-
"chef
|
182
|
+
"chef",
|
183
183
|
"development debug docs",
|
184
|
-
"#{
|
185
|
-
),
|
186
|
-
App.new(
|
187
|
-
"foodcritic",
|
188
|
-
"foodcritic/foodcritic",
|
189
|
-
"development",
|
190
|
-
"#{bin_dir.join("rake")} install"
|
184
|
+
"#{vendor_bin_dir.join("rake")} install"
|
191
185
|
),
|
192
186
|
App.new(
|
193
187
|
"inspec",
|
194
|
-
"chef
|
188
|
+
"chef",
|
195
189
|
"test integration tools maintenance deploy",
|
196
|
-
"#{
|
190
|
+
"#{vendor_bin_dir.join("rake")} install"
|
197
191
|
),
|
198
192
|
App.new(
|
199
193
|
"ohai",
|
200
|
-
"chef
|
194
|
+
"chef",
|
201
195
|
"development docs debug",
|
202
|
-
"#{
|
196
|
+
"#{vendor_bin_dir.join("rake")} install"
|
203
197
|
),
|
204
198
|
App.new(
|
205
199
|
"test-kitchen",
|
206
|
-
"
|
200
|
+
"chef",
|
207
201
|
"changelog integration debug chefstyle docs",
|
208
|
-
"#{
|
202
|
+
"#{vendor_bin_dir.join("rake")} install"
|
209
203
|
),
|
210
204
|
].freeze
|
211
205
|
|
212
206
|
class Updater
|
213
|
-
attr_reader :app, :ref, :tarball, :repo, :gems, :install_commands
|
207
|
+
attr_reader :app, :ref, :tarball, :origin, :repo, :gems, :install_commands
|
214
208
|
|
215
209
|
def initialize(options)
|
216
210
|
@app = options[:app]
|
@@ -219,6 +213,7 @@ class Updater
|
|
219
213
|
@extra_bin_files = options[:extra_bin_files]
|
220
214
|
@binstubs_source = options[:binstubs_source]
|
221
215
|
@repo = options[:repo] || @app.repo
|
216
|
+
@origin = options[:origin] || @app.origin
|
222
217
|
@gems = @app.gems
|
223
218
|
@install_commands = @app.install_commands
|
224
219
|
end
|
@@ -228,101 +223,100 @@ class Updater
|
|
228
223
|
abort "#{$0} needs to be run as root user or with sudo"
|
229
224
|
end
|
230
225
|
|
231
|
-
banner("Cleaning #{app} checkout")
|
232
|
-
app_dir.rmtree if app_dir.directory?
|
233
|
-
|
234
|
-
top_dir = chefdk.join("embedded/apps")
|
235
|
-
unless File.exist?(top_dir)
|
236
|
-
banner("Creating #{top_dir} directory")
|
237
|
-
FileUtils.mkdir_p top_dir
|
238
|
-
end
|
239
|
-
|
240
226
|
install_package_dependencies
|
241
227
|
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
228
|
+
tmp_dir = Dir.mktmpdir
|
229
|
+
banner("Creating #{tmp_dir}/#{app.name} directory")
|
230
|
+
app_dir = File.join(tmp_dir, app.name.to_s)
|
231
|
+
|
232
|
+
begin
|
233
|
+
if tarball
|
234
|
+
# NOTE: THIS IS DELIBERATELY PURE RUBY USING NO NATIVE GEMS AND ONLY
|
235
|
+
# THE RUBY STDLIB BY DESIGN
|
236
|
+
git_url = "https://github.com/#{repo}/archive/#{ref}.tar.gz"
|
237
|
+
banner("Extracting #{app} from #{git_url}")
|
238
|
+
Dir.chdir(tmp_dir) do
|
239
|
+
Tempfile.open("appbundle-updater") do |tempfile|
|
240
|
+
tempfile.binmode
|
241
|
+
URI.open(git_url) do |uri|
|
242
|
+
tempfile.write(uri.read)
|
243
|
+
end
|
244
|
+
tempfile.close
|
245
|
+
extract_tgz(tempfile.path)
|
252
246
|
end
|
253
|
-
|
254
|
-
|
247
|
+
base = File.basename repo
|
248
|
+
FileUtils.mv Dir.glob("#{base}-*")[0], app.name.to_s
|
249
|
+
end
|
250
|
+
else
|
251
|
+
git_url = "https://github.com/#{repo}.git"
|
252
|
+
banner("Cloning #{app} from #{git_url}")
|
253
|
+
run("git clone #{git_url} #{app_dir}")
|
254
|
+
|
255
|
+
banner("Checking out #{app} to #{ref}")
|
256
|
+
Dir.chdir(app_dir) do
|
257
|
+
run("git checkout #{ref}")
|
255
258
|
end
|
256
|
-
base = File.basename repo
|
257
|
-
FileUtils.mv Dir.glob("#{base}-*")[0], "#{app.name}"
|
258
259
|
end
|
259
|
-
else
|
260
|
-
git_url = "https://github.com/#{repo}.git"
|
261
|
-
banner("Cloning #{app} from #{git_url}")
|
262
|
-
run("git clone #{git_url} #{app_dir}")
|
263
260
|
|
264
|
-
banner("
|
261
|
+
banner("Installing dependencies")
|
265
262
|
Dir.chdir(app_dir) do
|
266
|
-
|
263
|
+
cmd = "#{vendor_bin_dir.join("bundle")} install"
|
264
|
+
cmd += " --without #{app.bundle_without}" if app.bundle_without
|
265
|
+
ruby(cmd)
|
267
266
|
end
|
268
|
-
end
|
269
267
|
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
cmd += " --without #{app.bundle_without}" if app.bundle_without
|
274
|
-
ruby(cmd)
|
275
|
-
end
|
276
|
-
|
277
|
-
banner("Re-installing git-installed gems")
|
278
|
-
Dir.chdir(app_dir) do
|
279
|
-
ruby("post-bundle-install.rb #{chefdk}") if File.exist?("#{app_dir}/post-bundle-install.rb")
|
280
|
-
end
|
281
|
-
|
282
|
-
banner("Installing gem")
|
283
|
-
Dir.chdir(app_dir) do
|
284
|
-
Array(install_commands).each do |command|
|
285
|
-
ruby(command)
|
268
|
+
banner("Re-installing git-installed gems")
|
269
|
+
Dir.chdir(app_dir) do
|
270
|
+
ruby("post-bundle-install.rb #{bin_dir}") if File.exist?("#{app_dir}/post-bundle-install.rb")
|
286
271
|
end
|
287
|
-
end
|
288
272
|
|
289
|
-
|
290
|
-
if gems.empty?
|
273
|
+
banner("Installing gem")
|
291
274
|
Dir.chdir(app_dir) do
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
ruby(cmd)
|
275
|
+
Array(install_commands).each do |command|
|
276
|
+
ruby(command)
|
277
|
+
end
|
296
278
|
end
|
297
|
-
|
298
|
-
|
279
|
+
|
280
|
+
banner("Updating appbundler binstubs for #{app}")
|
281
|
+
if gems.empty?
|
299
282
|
Dir.chdir(app_dir) do
|
300
|
-
cmd = "#{
|
301
|
-
cmd += " --without #{without.join(",")}" if without
|
283
|
+
cmd = "#{vendor_bin_dir.join("appbundler")} #{app_dir} #{bin_dir}"
|
302
284
|
cmd += " --extra-bin-files #{@extra_bin_files}" if @extra_bin_files
|
303
285
|
cmd += " --binstubs-source #{@binstubs_source}" if @binstubs_source
|
304
286
|
ruby(cmd)
|
305
287
|
end
|
288
|
+
else
|
289
|
+
gems.each do |gem_name, without|
|
290
|
+
Dir.chdir(app_dir) do
|
291
|
+
cmd = "#{vendor_bin_dir.join("appbundler")} #{app_dir} #{bin_dir} #{gem_name}"
|
292
|
+
cmd += " --without #{without.join(",")}" if without
|
293
|
+
cmd += " --extra-bin-files #{@extra_bin_files}" if @extra_bin_files
|
294
|
+
cmd += " --binstubs-source #{@binstubs_source}" if @binstubs_source
|
295
|
+
ruby(cmd)
|
296
|
+
end
|
297
|
+
end
|
306
298
|
end
|
307
|
-
end
|
308
299
|
|
309
|
-
|
300
|
+
rescue => e
|
301
|
+
puts "aborting!!", e
|
302
|
+
else
|
303
|
+
banner("Finished!")
|
304
|
+
ensure
|
305
|
+
banner("Cleaning up #{app_dir}")
|
306
|
+
FileUtils.remove_entry app_dir
|
307
|
+
banner("Done.")
|
308
|
+
end
|
310
309
|
end
|
311
310
|
|
312
311
|
private
|
313
312
|
|
314
|
-
def app_dir
|
315
|
-
chefdk.join("embedded/apps/#{app}")
|
316
|
-
end
|
317
|
-
|
318
313
|
def banner(msg)
|
319
314
|
puts "-----> #{msg}"
|
320
315
|
end
|
321
316
|
|
322
317
|
def ruby(script)
|
323
|
-
|
324
|
-
|
325
|
-
run([ruby, script].join(" "))
|
318
|
+
ruby_cmd = "hab pkg exec #{ruby_pkg} ruby"
|
319
|
+
run([ruby_cmd, script].join(" "))
|
326
320
|
end
|
327
321
|
|
328
322
|
end
|
@@ -356,7 +350,7 @@ class CLI
|
|
356
350
|
end
|
357
351
|
opts.separator("")
|
358
352
|
opts.separator("App names:")
|
359
|
-
|
353
|
+
HABITAT_PACKAGES.each { |a| opts.separator(" * #{a.name}") }
|
360
354
|
end
|
361
355
|
@parser.parse!
|
362
356
|
validate!
|
@@ -364,7 +358,7 @@ class CLI
|
|
364
358
|
|
365
359
|
def validate!
|
366
360
|
die("PROJECT APP_NAME GIT_REF options are all required") if ARGV.length < 3
|
367
|
-
options[:app] =
|
361
|
+
options[:app] = HABITAT_PACKAGES.find { |a| a.name == ARGV[1] }
|
368
362
|
die("Invalid APP_NAME: #{ARGV[1]}") if options[:app].nil?
|
369
363
|
options[:ref] = ARGV[2]
|
370
364
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appbundle-updater
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 19.0.2.rc.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lamont-granquist
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Updates appbundled apps in Chef's omnibus packages
|
14
14
|
email:
|
@@ -46,11 +46,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
46
46
|
version: '0'
|
47
47
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
48
48
|
requirements:
|
49
|
-
- - "
|
49
|
+
- - ">"
|
50
50
|
- !ruby/object:Gem::Version
|
51
|
-
version:
|
51
|
+
version: 1.3.1
|
52
52
|
requirements: []
|
53
|
-
rubygems_version: 3.
|
53
|
+
rubygems_version: 3.2.3
|
54
54
|
signing_key:
|
55
55
|
specification_version: 4
|
56
56
|
summary: Updates appbundled apps in Chef's omnibus packages
|