bento-ya 1.1.2 → 1.3.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/bin/bento +3 -5
- data/lib/bento/build.rb +7 -4
- data/lib/bento/buildmetadata.rb +3 -7
- data/lib/bento/cli.rb +34 -29
- data/lib/bento/common.rb +5 -8
- data/lib/bento/normalize.rb +6 -4
- data/lib/bento/packerexec.rb +0 -1
- data/lib/bento/providermetadata.rb +2 -2
- data/lib/bento/test.rb +1 -1
- data/lib/bento/upload.rb +8 -6
- data/lib/bento/version.rb +1 -1
- metadata +7 -15
- data/.gitignore +0 -50
- data/.travis.yml +0 -19
- data/CHANGELOG.md +0 -132
- data/Gemfile +0 -12
- data/README.md +0 -66
- data/Rakefile +0 -22
- data/bento-ya.gemspec +0 -26
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 281906c67ee3bd9713f00cd4c41c57319cf8125bda545c02ea6e53be1b03f52e
|
|
4
|
+
data.tar.gz: 6f364a93b9c5041dcabb5aa54f2c9132ee870e239aeb736176ccf7eae3d54b36
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b8b397d611d9c398dddc9fb5d51b351d79c952e24cebff941b2441ab00a98d18819284b8a0f636170d8be9c1b51767a8532f966cc340922a9374d48cd18a10b7
|
|
7
|
+
data.tar.gz: 5ad41b9e47b809699c181073111b890ebbe0e955e0e290129d748e407147f8687849fd73026555f6c78892bc71b03ebb3530155494c076d8b73eed5e945f2c68
|
data/bin/bento
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
# -*- encoding: utf-8 -*-
|
|
3
|
-
|
|
4
2
|
Signal.trap("INT") { exit 1 }
|
|
5
3
|
|
|
6
4
|
$stdout.sync = true
|
|
7
5
|
$stderr.sync = true
|
|
8
6
|
|
|
9
|
-
$LOAD_PATH.unshift File.join(
|
|
7
|
+
$LOAD_PATH.unshift File.join(__dir__, %w{.. lib})
|
|
10
8
|
require "bento/cli"
|
|
11
9
|
|
|
12
10
|
begin
|
|
13
11
|
Runner.new(Options.parse(ARGV)).start
|
|
14
12
|
rescue => ex
|
|
15
|
-
|
|
16
|
-
exit((
|
|
13
|
+
warn ">>> #{ex.message}"
|
|
14
|
+
exit(($CHILD_STATUS && $CHILD_STATUS.exitstatus) || 99)
|
|
17
15
|
end
|
data/lib/bento/build.rb
CHANGED
|
@@ -7,7 +7,7 @@ class BuildRunner
|
|
|
7
7
|
include Common
|
|
8
8
|
include PackerExec
|
|
9
9
|
|
|
10
|
-
attr_reader :template_files, :config, :dry_run, :debug, :only, :except, :mirror, :headed,
|
|
10
|
+
attr_reader :template_files, :config, :dry_run, :debug, :only, :except, :mirror, :headed, :single,
|
|
11
11
|
:override_version, :build_timestamp, :cpus, :mem
|
|
12
12
|
|
|
13
13
|
def initialize(opts)
|
|
@@ -19,6 +19,7 @@ class BuildRunner
|
|
|
19
19
|
@except = opts.except
|
|
20
20
|
@mirror = opts.mirror
|
|
21
21
|
@headed = opts.headed ||= false
|
|
22
|
+
@single = opts.single ||= false
|
|
22
23
|
@override_version = opts.override_version
|
|
23
24
|
@build_timestamp = Time.now.gmtime.strftime("%Y%m%d%H%M%S")
|
|
24
25
|
@cpus = opts.cpus
|
|
@@ -38,13 +39,14 @@ class BuildRunner
|
|
|
38
39
|
private
|
|
39
40
|
|
|
40
41
|
def build(file)
|
|
41
|
-
dir
|
|
42
|
+
dir = file.split("/")[0]
|
|
43
|
+
template = file.split("/")[1]
|
|
42
44
|
Dir.chdir dir
|
|
43
|
-
for_packer_run_with(template) do |md_file,
|
|
45
|
+
for_packer_run_with(template) do |md_file, _var_file|
|
|
44
46
|
cmd = packer_build_cmd(template, md_file.path)
|
|
45
47
|
banner("[#{template}] Building: '#{cmd.join(' ')}'")
|
|
46
48
|
time = Benchmark.measure do
|
|
47
|
-
system(*cmd) || raise("[#{template}] Error building, exited #{
|
|
49
|
+
system(*cmd) || raise("[#{template}] Error building, exited #{$CHILD_STATUS}")
|
|
48
50
|
end
|
|
49
51
|
write_final_metadata(template, time.real.ceil)
|
|
50
52
|
banner("[#{template}] Finished building in #{duration(time.real)}.")
|
|
@@ -67,6 +69,7 @@ class BuildRunner
|
|
|
67
69
|
cmd.insert(2, "-var") if mirror
|
|
68
70
|
cmd.insert(2, "headless=true") unless headed
|
|
69
71
|
cmd.insert(2, "-var") unless headed
|
|
72
|
+
cmd.insert(2, "-parallel=false") if single
|
|
70
73
|
cmd.insert(2, "-debug") if debug
|
|
71
74
|
cmd.insert(0, "echo") if dry_run
|
|
72
75
|
cmd
|
data/lib/bento/buildmetadata.rb
CHANGED
|
@@ -35,7 +35,7 @@ class BuildMetadata
|
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def git_revision
|
|
38
|
-
|
|
38
|
+
`git rev-parse HEAD`.strip
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
def git_clean?
|
|
@@ -61,12 +61,8 @@ class BuildMetadata
|
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
def version
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
else
|
|
67
|
-
merged_vars.fetch("version", "#{UNKNOWN}.TIMESTAMP").
|
|
68
|
-
rpartition(".").first.concat("#{build_timestamp}")
|
|
69
|
-
end
|
|
64
|
+
override_version || merged_vars.fetch("version", "#{UNKNOWN}.TIMESTAMP")
|
|
65
|
+
.rpartition(".").first.concat(build_timestamp.to_s)
|
|
70
66
|
end
|
|
71
67
|
|
|
72
68
|
def packer_ver
|
data/lib/bento/cli.rb
CHANGED
|
@@ -11,7 +11,7 @@ require "bento/test"
|
|
|
11
11
|
require "bento/upload"
|
|
12
12
|
|
|
13
13
|
class Options
|
|
14
|
-
NAME = File.basename($
|
|
14
|
+
NAME = File.basename($PROGRAM_NAME).freeze
|
|
15
15
|
|
|
16
16
|
def self.parse(args)
|
|
17
17
|
options = OpenStruct.new
|
|
@@ -26,41 +26,42 @@ class Options
|
|
|
26
26
|
list : list all templates in project
|
|
27
27
|
normalize : normalize one or more templates
|
|
28
28
|
test : test one or more builds with kitchen
|
|
29
|
-
upload : upload one or more builds to
|
|
30
|
-
release : release a version of a box on
|
|
31
|
-
revoke : revoke a version of a box on
|
|
32
|
-
delete : delete a version of a box from
|
|
29
|
+
upload : upload one or more builds to Vagrant Cloud and S3
|
|
30
|
+
release : release a version of a box on Vagrant Cloud
|
|
31
|
+
revoke : revoke a version of a box on Vagrant Cloud
|
|
32
|
+
delete : delete a version of a box from Vagrant Cloud
|
|
33
33
|
COMMANDS
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
# @tas50: commenting this out since it's unused 11/30/2018
|
|
37
|
+
# platforms_argv_proc = proc { |opts|
|
|
38
|
+
# opts.platforms = builds["public"] unless args.empty?
|
|
39
|
+
# }
|
|
39
40
|
|
|
40
|
-
templates_argv_proc = proc { |
|
|
41
|
-
|
|
41
|
+
templates_argv_proc = proc { |opts|
|
|
42
|
+
opts.template_files = calculate_templates(args) unless args.empty?
|
|
42
43
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
opts.template_files.each do |t|
|
|
45
|
+
unless File.exist?("#{t}.json")
|
|
46
|
+
warn "File #{t}.json does not exist for template '#{t}'"
|
|
46
47
|
exit(1)
|
|
47
48
|
end
|
|
48
49
|
end
|
|
49
50
|
}
|
|
50
51
|
|
|
51
|
-
box_version_argv_proc = proc { |
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
box_version_argv_proc = proc { |opts|
|
|
53
|
+
opts.box = ARGV[0]
|
|
54
|
+
opts.version = ARGV[1]
|
|
54
55
|
}
|
|
55
56
|
|
|
56
|
-
md_json_argv_proc = proc { |
|
|
57
|
-
|
|
57
|
+
md_json_argv_proc = proc { |opts|
|
|
58
|
+
opts.md_json = ARGV[0]
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
subcommand = {
|
|
61
62
|
help: {
|
|
62
63
|
parser: OptionParser.new {},
|
|
63
|
-
argv: proc { |
|
|
64
|
+
argv: proc { |_opts|
|
|
64
65
|
puts global
|
|
65
66
|
exit(0)
|
|
66
67
|
},
|
|
@@ -82,11 +83,11 @@ class Options
|
|
|
82
83
|
options.debug = opt
|
|
83
84
|
end
|
|
84
85
|
|
|
85
|
-
opts.on("-o BUILDS", "--only BUILDS", "Only build some Packer builds") do |opt|
|
|
86
|
+
opts.on("-o BUILDS", "--only BUILDS", "Only build some Packer builds (ex: parallels-iso,virtualbox-iso,vmware-iso)") do |opt|
|
|
86
87
|
options.only = opt
|
|
87
88
|
end
|
|
88
89
|
|
|
89
|
-
opts.on("-e BUILDS", "--except BUILDS", "Build all Packer builds except these") do |opt|
|
|
90
|
+
opts.on("-e BUILDS", "--except BUILDS", "Build all Packer builds except these (ex: parallels-iso,virtualbox-iso,vmware-iso)") do |opt|
|
|
90
91
|
options.except = opt
|
|
91
92
|
end
|
|
92
93
|
|
|
@@ -106,6 +107,10 @@ class Options
|
|
|
106
107
|
options.headed = opt
|
|
107
108
|
end
|
|
108
109
|
|
|
110
|
+
opts.on("-S", "--single", "Disable parallelization of Packer builds") do |opt|
|
|
111
|
+
options.single = opt
|
|
112
|
+
end
|
|
113
|
+
|
|
109
114
|
opts.on("-v VERSION", "--version VERSION", "Override the version set in the template") do |opt|
|
|
110
115
|
options.override_version = opt
|
|
111
116
|
end
|
|
@@ -143,7 +148,7 @@ class Options
|
|
|
143
148
|
options.provisioner = opt
|
|
144
149
|
end
|
|
145
150
|
end,
|
|
146
|
-
argv:
|
|
151
|
+
argv: proc {},
|
|
147
152
|
},
|
|
148
153
|
upload: {
|
|
149
154
|
class: UploadRunner,
|
|
@@ -187,12 +192,12 @@ class Options
|
|
|
187
192
|
end
|
|
188
193
|
|
|
189
194
|
def self.calculate_templates(globs)
|
|
190
|
-
Array(globs)
|
|
191
|
-
map { |glob| result = Dir.glob(glob); result.empty? ? glob : result }
|
|
192
|
-
flatten
|
|
193
|
-
sort
|
|
194
|
-
delete_if { |file| file =~ /\.(variables||metadata)\.json/ }
|
|
195
|
-
map { |template| template.sub(/\.json$/, "") }
|
|
195
|
+
Array(globs)
|
|
196
|
+
.map { |glob| result = Dir.glob(glob); result.empty? ? glob : result }
|
|
197
|
+
.flatten
|
|
198
|
+
.sort
|
|
199
|
+
.delete_if { |file| file =~ /\.(variables||metadata)\.json/ }
|
|
200
|
+
.map { |template| template.sub(/\.json$/, "") }
|
|
196
201
|
end
|
|
197
202
|
end
|
|
198
203
|
|
|
@@ -202,7 +207,7 @@ class ListRunner
|
|
|
202
207
|
attr_reader :templates
|
|
203
208
|
|
|
204
209
|
def initialize(opts)
|
|
205
|
-
@templates = opts.
|
|
210
|
+
@templates = opts.template_files
|
|
206
211
|
end
|
|
207
212
|
|
|
208
213
|
def start
|
data/lib/bento/common.rb
CHANGED
|
@@ -9,6 +9,7 @@ MEGABYTE = 1024.0 * 1024.0
|
|
|
9
9
|
|
|
10
10
|
module Common
|
|
11
11
|
def vc_account
|
|
12
|
+
raise "You must set the 'VAGRANT_CLOUD_ORG' and 'VAGRANT_CLOUD_TOKEN' tokens to interact with the Vagrant Cloud!" unless ENV["VAGRANT_CLOUD_ORG"] && ENV["VAGRANT_CLOUD_TOKEN"]
|
|
12
13
|
VagrantCloud::Account.new(ENV["VAGRANT_CLOUD_ORG"], ENV["VAGRANT_CLOUD_TOKEN"])
|
|
13
14
|
end
|
|
14
15
|
|
|
@@ -32,7 +33,7 @@ module Common
|
|
|
32
33
|
end
|
|
33
34
|
|
|
34
35
|
def box_metadata(metadata_file)
|
|
35
|
-
metadata =
|
|
36
|
+
metadata = {}
|
|
36
37
|
file = File.read(metadata_file)
|
|
37
38
|
json = JSON.parse(file)
|
|
38
39
|
|
|
@@ -41,7 +42,7 @@ module Common
|
|
|
41
42
|
metadata["version"] = json["version"]
|
|
42
43
|
metadata["box_basename"] = json["box_basename"]
|
|
43
44
|
metadata["tools"] = json["tools"]
|
|
44
|
-
metadata["providers"] =
|
|
45
|
+
metadata["providers"] = {}
|
|
45
46
|
json["providers"].each do |provider|
|
|
46
47
|
metadata["providers"][provider["name"]] = provider.reject { |k, _| k == "name" }
|
|
47
48
|
end
|
|
@@ -49,11 +50,7 @@ module Common
|
|
|
49
50
|
end
|
|
50
51
|
|
|
51
52
|
def metadata_files
|
|
52
|
-
@metadata_files ||=
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def compute_metadata_files
|
|
56
|
-
`ls builds/*.json`.split("\n")
|
|
53
|
+
@metadata_files ||= Dir.glob("builds/*.json")
|
|
57
54
|
end
|
|
58
55
|
|
|
59
56
|
def builds_yml
|
|
@@ -91,7 +88,7 @@ module Common
|
|
|
91
88
|
proprietary_os_list.any? { |p| boxname.include?(p) }
|
|
92
89
|
end
|
|
93
90
|
|
|
94
|
-
def
|
|
91
|
+
def macos?
|
|
95
92
|
!!(RUBY_PLATFORM =~ /darwin/)
|
|
96
93
|
end
|
|
97
94
|
|
data/lib/bento/normalize.rb
CHANGED
|
@@ -18,13 +18,14 @@ class NormalizeRunner
|
|
|
18
18
|
templates.each { |t| puts "- #{t}" }
|
|
19
19
|
time = Benchmark.measure do
|
|
20
20
|
templates.each do |file|
|
|
21
|
-
dir
|
|
21
|
+
dir = file.split("/")[0]
|
|
22
|
+
template = file.split("/")[1]
|
|
22
23
|
Dir.chdir dir
|
|
23
24
|
validate(template)
|
|
24
25
|
Dir.chdir("..")
|
|
25
26
|
end
|
|
26
27
|
end
|
|
27
|
-
|
|
28
|
+
unless @modified.empty?
|
|
28
29
|
info("")
|
|
29
30
|
info("The following templates were modified:")
|
|
30
31
|
@modified.sort.each { |template| info(" * #{template}") }
|
|
@@ -44,7 +45,8 @@ class NormalizeRunner
|
|
|
44
45
|
banner("[#{template}] Fixing")
|
|
45
46
|
original_checksum = checksum(file)
|
|
46
47
|
output = `packer fix #{file}`
|
|
47
|
-
raise "[#{template}] Error fixing, exited #{
|
|
48
|
+
raise "[#{template}] Error fixing, exited #{$CHILD_STATUS}" if $CHILD_STATUS.exitstatus != 0
|
|
49
|
+
|
|
48
50
|
# preserve ampersands in shell commands,
|
|
49
51
|
# see: https://github.com/mitchellh/packer/issues/784
|
|
50
52
|
output.gsub!("\\u0026", "&")
|
|
@@ -76,7 +78,7 @@ class NormalizeRunner
|
|
|
76
78
|
banner("[#{template}] DEBUG: md_file(#{md_file.path}) is:")
|
|
77
79
|
puts IO.read(md_file.path)
|
|
78
80
|
end
|
|
79
|
-
system(*cmd) || raise(
|
|
81
|
+
system(*cmd) || raise("[#{template}] Error validating, exited #{$CHILD_STATUS}")
|
|
80
82
|
end
|
|
81
83
|
end
|
|
82
84
|
end
|
data/lib/bento/packerexec.rb
CHANGED
|
@@ -56,7 +56,7 @@ class ProviderMetadata
|
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
def ver_vmware
|
|
59
|
-
if
|
|
59
|
+
if macos?
|
|
60
60
|
path = File.join('/Applications/VMware\ Fusion.app/Contents/Library')
|
|
61
61
|
fusion_cmd = File.join(path, "vmware-vmx -v")
|
|
62
62
|
cmd = Mixlib::ShellOut.new(fusion_cmd)
|
|
@@ -70,7 +70,7 @@ class ProviderMetadata
|
|
|
70
70
|
end
|
|
71
71
|
|
|
72
72
|
def ver_parallels
|
|
73
|
-
raise "Platform is not macOS
|
|
73
|
+
raise "Platform is not macOS, exiting..." unless macos?
|
|
74
74
|
cmd = Mixlib::ShellOut.new("prlctl --version")
|
|
75
75
|
cmd.run_command
|
|
76
76
|
cmd.stdout.split(" ")[2]
|
data/lib/bento/test.rb
CHANGED
|
@@ -53,7 +53,7 @@ class TestRunner
|
|
|
53
53
|
File.open(file, "w") { |f| f.puts erb }
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
-
test = Mixlib::ShellOut.new("kitchen test", :
|
|
56
|
+
test = Mixlib::ShellOut.new("kitchen test", timeout: 900, live_stream: STDOUT)
|
|
57
57
|
test.run_command
|
|
58
58
|
test.error!
|
|
59
59
|
end
|
data/lib/bento/upload.rb
CHANGED
|
@@ -21,14 +21,15 @@ class UploadRunner
|
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def upload(md_file)
|
|
24
|
+
puts "Attempting to upload #{md_file}"
|
|
24
25
|
md = box_metadata(md_file)
|
|
25
26
|
box_desc = "a bento box for #{md['name']}"
|
|
26
|
-
box = vc_account.ensure_box(md["name"], box_desc, private_box?(md["name"]))
|
|
27
|
+
box = vc_account.ensure_box(md["name"], {short_description: box_desc, is_private: private_box?(md["name"])})
|
|
27
28
|
box_ver = box.ensure_version(md["version"], File.read(md_file))
|
|
28
29
|
|
|
29
|
-
if builds_yml["slugs"].
|
|
30
|
+
if builds_yml["slugs"].value?(box.name)
|
|
30
31
|
slug_desc = "a bento box for #{builds_yml['slugs'].key(box.name)}"
|
|
31
|
-
slug = vc_account.ensure_box(builds_yml["slugs"].key(box.name), slug_desc, false)
|
|
32
|
+
slug = vc_account.ensure_box(builds_yml["slugs"].key(box.name), {short_description: slug_desc, is_private: false})
|
|
32
33
|
slug_ver = slug.ensure_version(md["version"], File.read(md_file))
|
|
33
34
|
end
|
|
34
35
|
|
|
@@ -36,12 +37,13 @@ class UploadRunner
|
|
|
36
37
|
provider = box_ver.ensure_provider(k, nil)
|
|
37
38
|
banner("Uploading #{box.name}/#{box_ver.version}/#{provider.name}...")
|
|
38
39
|
provider.upload_file("builds/#{v['file']}")
|
|
39
|
-
banner(
|
|
40
|
-
next unless builds_yml["slugs"].
|
|
40
|
+
banner(provider.download_url.to_s)
|
|
41
|
+
next unless builds_yml["slugs"].value?(box.name)
|
|
42
|
+
|
|
41
43
|
slug_provider = slug_ver.ensure_provider(k, nil)
|
|
42
44
|
banner("Uploading #{slug.name}/#{slug_ver.version}/#{slug_provider.name}...")
|
|
43
45
|
slug_provider.upload_file("builds/#{v['file']}")
|
|
44
|
-
banner(
|
|
46
|
+
banner(slug_provider.download_url.to_s)
|
|
45
47
|
end
|
|
46
48
|
end
|
|
47
49
|
end
|
data/lib/bento/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bento-ya
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Seth Thomas
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2019-03-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: mixlib-shellout
|
|
@@ -30,30 +30,23 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
33
|
+
version: '2.0'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
40
|
+
version: '2.0'
|
|
41
41
|
description: bento-ya builds bento boxes
|
|
42
42
|
email:
|
|
43
|
-
-
|
|
43
|
+
- seth.g.thomas@gmail.com
|
|
44
44
|
executables:
|
|
45
45
|
- bento
|
|
46
46
|
extensions: []
|
|
47
47
|
extra_rdoc_files: []
|
|
48
48
|
files:
|
|
49
|
-
- ".gitignore"
|
|
50
|
-
- ".travis.yml"
|
|
51
|
-
- CHANGELOG.md
|
|
52
|
-
- Gemfile
|
|
53
49
|
- LICENSE
|
|
54
|
-
- README.md
|
|
55
|
-
- Rakefile
|
|
56
|
-
- bento-ya.gemspec
|
|
57
50
|
- bin/bento
|
|
58
51
|
- lib/bento.rb
|
|
59
52
|
- lib/bento/build.rb
|
|
@@ -71,7 +64,7 @@ files:
|
|
|
71
64
|
- lib/bento/version.rb
|
|
72
65
|
- templates/bootstrap.sh.erb
|
|
73
66
|
- templates/kitchen.yml.erb
|
|
74
|
-
homepage: https://github.com/
|
|
67
|
+
homepage: https://github.com/chef/bento-ya
|
|
75
68
|
licenses:
|
|
76
69
|
- Apache-2.0
|
|
77
70
|
metadata: {}
|
|
@@ -90,8 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
90
83
|
- !ruby/object:Gem::Version
|
|
91
84
|
version: '0'
|
|
92
85
|
requirements: []
|
|
93
|
-
|
|
94
|
-
rubygems_version: 2.7.6
|
|
86
|
+
rubygems_version: 3.0.3
|
|
95
87
|
signing_key:
|
|
96
88
|
specification_version: 4
|
|
97
89
|
summary: A RubyGem for managing chef/bento builds
|
data/.gitignore
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
*.gem
|
|
2
|
-
*.rbc
|
|
3
|
-
/.config
|
|
4
|
-
/coverage/
|
|
5
|
-
/InstalledFiles
|
|
6
|
-
/pkg/
|
|
7
|
-
/spec/reports/
|
|
8
|
-
/spec/examples.txt
|
|
9
|
-
/test/tmp/
|
|
10
|
-
/test/version_tmp/
|
|
11
|
-
/tmp/
|
|
12
|
-
|
|
13
|
-
# Used by dotenv library to load environment variables.
|
|
14
|
-
# .env
|
|
15
|
-
|
|
16
|
-
## Specific to RubyMotion:
|
|
17
|
-
.dat*
|
|
18
|
-
.repl_history
|
|
19
|
-
build/
|
|
20
|
-
*.bridgesupport
|
|
21
|
-
build-iPhoneOS/
|
|
22
|
-
build-iPhoneSimulator/
|
|
23
|
-
|
|
24
|
-
## Specific to RubyMotion (use of CocoaPods):
|
|
25
|
-
#
|
|
26
|
-
# We recommend against adding the Pods directory to your .gitignore. However
|
|
27
|
-
# you should judge for yourself, the pros and cons are mentioned at:
|
|
28
|
-
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
|
|
29
|
-
#
|
|
30
|
-
# vendor/Pods/
|
|
31
|
-
|
|
32
|
-
## Documentation cache and generated files:
|
|
33
|
-
/.yardoc/
|
|
34
|
-
/_yardoc/
|
|
35
|
-
/doc/
|
|
36
|
-
/rdoc/
|
|
37
|
-
|
|
38
|
-
## Environment normalization:
|
|
39
|
-
/.bundle/
|
|
40
|
-
/vendor/bundle
|
|
41
|
-
/lib/bundler/man/
|
|
42
|
-
|
|
43
|
-
# for a library or gem, you might want to ignore these files since the code is
|
|
44
|
-
# intended to run in multiple environments; otherwise, check them in:
|
|
45
|
-
Gemfile.lock
|
|
46
|
-
# .ruby-version
|
|
47
|
-
# .ruby-gemset
|
|
48
|
-
|
|
49
|
-
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
|
50
|
-
.rvmrc
|
data/.travis.yml
DELETED
data/CHANGELOG.md
DELETED
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
|
|
3
|
-
## [v1.1.2](https://github.com/cheeseplus/bento-ya/tree/v1.1.2) (2018-08-14)
|
|
4
|
-
[Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v1.1.1...v1.1.2)
|
|
5
|
-
|
|
6
|
-
**Merged pull requests:**
|
|
7
|
-
|
|
8
|
-
- Alter share\_disabled regex to catch all BSDs [\#41](https://github.com/cheeseplus/bento-ya/pull/41) ([cheeseplus](https://github.com/cheeseplus))
|
|
9
|
-
|
|
10
|
-
## [v1.1.1](https://github.com/cheeseplus/bento-ya/tree/v1.1.1) (2018-08-13)
|
|
11
|
-
[Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v1.1.0...v1.1.1)
|
|
12
|
-
|
|
13
|
-
**Closed issues:**
|
|
14
|
-
|
|
15
|
-
- disable synced\_folder for Hyper-V provider [\#37](https://github.com/cheeseplus/bento-ya/issues/37)
|
|
16
|
-
- use full paths for `box\_url` in kitchen.yml [\#36](https://github.com/cheeseplus/bento-ya/issues/36)
|
|
17
|
-
|
|
18
|
-
**Merged pull requests:**
|
|
19
|
-
|
|
20
|
-
- This fixes Windows Hyper-V builders [\#39](https://github.com/cheeseplus/bento-ya/pull/39) ([cheeseplus](https://github.com/cheeseplus))
|
|
21
|
-
|
|
22
|
-
## [v1.1.0](https://github.com/cheeseplus/bento-ya/tree/v1.1.0) (2018-01-02)
|
|
23
|
-
[Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v1.0.1...v1.1.0)
|
|
24
|
-
|
|
25
|
-
### NEW FEATURE
|
|
26
|
-
|
|
27
|
-
* Support for uploading to N and N.N slugs via builds.yml
|
|
28
|
-
|
|
29
|
-
## [v1.0.1](https://github.com/cheeseplus/bento-ya/tree/v1.0.1) (2017-09-14)
|
|
30
|
-
[Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v1.0.0...v1.0.1)
|
|
31
|
-
|
|
32
|
-
### BUG FIXES
|
|
33
|
-
|
|
34
|
-
* Fix normalize
|
|
35
|
-
* Fix release
|
|
36
|
-
|
|
37
|
-
## [v1.0.0](https://github.com/cheeseplus/bento-ya/tree/v1.0.0) (2017-09-05)
|
|
38
|
-
[Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.1.4...v1.0.0)
|
|
39
|
-
|
|
40
|
-
### IMPROVEMENTS
|
|
41
|
-
|
|
42
|
-
* Use `vagrant_cloud` gem
|
|
43
|
-
* Refactor all Vagrant Cloud related code
|
|
44
|
-
* cleanup deps, options, style
|
|
45
|
-
* drop remote build support
|
|
46
|
-
* add Chefstyle
|
|
47
|
-
* configure TravisCI
|
|
48
|
-
* moved more things out of bento and into bento-ya
|
|
49
|
-
* support for loading `builds.yml`
|
|
50
|
-
* support folder re-organzation in bento project
|
|
51
|
-
|
|
52
|
-
### BUG FIXES
|
|
53
|
-
|
|
54
|
-
* Fix provider being set incorrectly for VMware builds
|
|
55
|
-
|
|
56
|
-
## [v0.1.4](https://github.com/cheeseplus/bento-ya/tree/v0.1.4) (2017-07-05)
|
|
57
|
-
[Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.1.3...v0.1.4)
|
|
58
|
-
|
|
59
|
-
**Merged pull requests:**
|
|
60
|
-
|
|
61
|
-
- TravisCI doesn't have vagrant so punt [\#24](https://github.com/cheeseplus/bento-ya/pull/24) ([cheeseplus](https://github.com/cheeseplus))
|
|
62
|
-
|
|
63
|
-
## [v0.1.3](https://github.com/cheeseplus/bento-ya/tree/v0.1.3) (2017-07-05)
|
|
64
|
-
[Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.1.2...v0.1.3)
|
|
65
|
-
|
|
66
|
-
**Merged pull requests:**
|
|
67
|
-
|
|
68
|
-
- Release 0.1.3 [\#23](https://github.com/cheeseplus/bento-ya/pull/23) ([cheeseplus](https://github.com/cheeseplus))
|
|
69
|
-
- Fixing require and attr reader for test [\#22](https://github.com/cheeseplus/bento-ya/pull/22) ([cheeseplus](https://github.com/cheeseplus))
|
|
70
|
-
|
|
71
|
-
## [v0.1.2](https://github.com/cheeseplus/bento-ya/tree/v0.1.2) (2017-07-05)
|
|
72
|
-
[Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.1.1...v0.1.2)
|
|
73
|
-
|
|
74
|
-
**Merged pull requests:**
|
|
75
|
-
|
|
76
|
-
- Release 0.1.2 [\#21](https://github.com/cheeseplus/bento-ya/pull/21) ([cheeseplus](https://github.com/cheeseplus))
|
|
77
|
-
- Cleanup some requires [\#20](https://github.com/cheeseplus/bento-ya/pull/20) ([cheeseplus](https://github.com/cheeseplus))
|
|
78
|
-
- Testing of shared folder now default, option inverted [\#18](https://github.com/cheeseplus/bento-ya/pull/18) ([cheeseplus](https://github.com/cheeseplus))
|
|
79
|
-
- Fix typo in README.md [\#17](https://github.com/cheeseplus/bento-ya/pull/17) ([ffmike](https://github.com/ffmike))
|
|
80
|
-
|
|
81
|
-
## [v0.1.1](https://github.com/cheeseplus/bento-ya/tree/v0.1.1) (2017-07-03)
|
|
82
|
-
[Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.1.0...v0.1.1)
|
|
83
|
-
|
|
84
|
-
**Merged pull requests:**
|
|
85
|
-
|
|
86
|
-
- Release 0.1.1 [\#16](https://github.com/cheeseplus/bento-ya/pull/16) ([cheeseplus](https://github.com/cheeseplus))
|
|
87
|
-
- Need mixlib-shellout [\#15](https://github.com/cheeseplus/bento-ya/pull/15) ([cheeseplus](https://github.com/cheeseplus))
|
|
88
|
-
- Fix renamed method [\#14](https://github.com/cheeseplus/bento-ya/pull/14) ([cheeseplus](https://github.com/cheeseplus))
|
|
89
|
-
|
|
90
|
-
## [v0.1.0](https://github.com/cheeseplus/bento-ya/tree/v0.1.0) (2017-06-30)
|
|
91
|
-
[Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.0.3...v0.1.0)
|
|
92
|
-
|
|
93
|
-
**Closed issues:**
|
|
94
|
-
|
|
95
|
-
- Make CPU and Memory settings flexible [\#10](https://github.com/cheeseplus/bento-ya/issues/10)
|
|
96
|
-
|
|
97
|
-
**Merged pull requests:**
|
|
98
|
-
|
|
99
|
-
- Release 0.1.0 [\#12](https://github.com/cheeseplus/bento-ya/pull/12) ([cheeseplus](https://github.com/cheeseplus))
|
|
100
|
-
- Refactor for Vagrant Cloud [\#11](https://github.com/cheeseplus/bento-ya/pull/11) ([cheeseplus](https://github.com/cheeseplus))
|
|
101
|
-
|
|
102
|
-
## [v0.0.3](https://github.com/cheeseplus/bento-ya/tree/v0.0.3) (2017-02-22)
|
|
103
|
-
[Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.0.2...v0.0.3)
|
|
104
|
-
|
|
105
|
-
**Merged pull requests:**
|
|
106
|
-
|
|
107
|
-
- Release 0.0.3 [\#9](https://github.com/cheeseplus/bento-ya/pull/9) ([cheeseplus](https://github.com/cheeseplus))
|
|
108
|
-
- Cleaning up code and fixing normalize [\#8](https://github.com/cheeseplus/bento-ya/pull/8) ([cheeseplus](https://github.com/cheeseplus))
|
|
109
|
-
|
|
110
|
-
## [v0.0.2](https://github.com/cheeseplus/bento-ya/tree/v0.0.2) (2017-02-19)
|
|
111
|
-
[Full Changelog](https://github.com/cheeseplus/bento-ya/compare/v0.0.1...v0.0.2)
|
|
112
|
-
|
|
113
|
-
**Closed issues:**
|
|
114
|
-
|
|
115
|
-
- bento terminates if prlctl is not available. [\#4](https://github.com/cheeseplus/bento-ya/issues/4)
|
|
116
|
-
- Gemspec Homepage Incorrect [\#3](https://github.com/cheeseplus/bento-ya/issues/3)
|
|
117
|
-
|
|
118
|
-
**Merged pull requests:**
|
|
119
|
-
|
|
120
|
-
- Cutting 0.0.2 [\#7](https://github.com/cheeseplus/bento-ya/pull/7) ([cheeseplus](https://github.com/cheeseplus))
|
|
121
|
-
- Fixes \#3 [\#6](https://github.com/cheeseplus/bento-ya/pull/6) ([cheeseplus](https://github.com/cheeseplus))
|
|
122
|
-
- deal with executables missing [\#5](https://github.com/cheeseplus/bento-ya/pull/5) ([karcaw](https://github.com/karcaw))
|
|
123
|
-
|
|
124
|
-
## [v0.0.1](https://github.com/cheeseplus/bento-ya/tree/v0.0.1) (2016-12-19)
|
|
125
|
-
**Merged pull requests:**
|
|
126
|
-
|
|
127
|
-
- Cutting 0.0.1 [\#2](https://github.com/cheeseplus/bento-ya/pull/2) ([cheeseplus](https://github.com/cheeseplus))
|
|
128
|
-
- let there be files [\#1](https://github.com/cheeseplus/bento-ya/pull/1) ([cheeseplus](https://github.com/cheeseplus))
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
data/Gemfile
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
source "https://rubygems.org"
|
|
2
|
-
|
|
3
|
-
gemspec
|
|
4
|
-
|
|
5
|
-
group :development do
|
|
6
|
-
gem "chefstyle"
|
|
7
|
-
gem "rake", ">= 10.1.0"
|
|
8
|
-
gem "rspec-core", "~> 3.0"
|
|
9
|
-
gem "rspec-expectations", "~> 3.0"
|
|
10
|
-
gem "rspec-mocks", "~> 3.0"
|
|
11
|
-
gem "rspec-collection_matchers", "~> 1.0"
|
|
12
|
-
end
|
data/README.md
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
[](http://badge.fury.io/rb/bento-ya) [](https://travis-ci.org/cheeseplus/bento-ya)
|
|
2
|
-
|
|
3
|
-
# bento-ya
|
|
4
|
-
A RubyGem for managing chef/bento builds
|
|
5
|
-
|
|
6
|
-
## Requirements
|
|
7
|
-
|
|
8
|
-
* [Packer](https://www.packer.io/)
|
|
9
|
-
* At least one virtualization provider: VirtualBox, VMware Fusion, Parallels Desktop, etc
|
|
10
|
-
|
|
11
|
-
## Quick Start
|
|
12
|
-
|
|
13
|
-
Bento-ya is a RubyGem and can be installed with:
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
$ gem install bento-ya
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
If you use Bundler, you can add `gem "bento-ya"` to your Gemfile and make
|
|
20
|
-
sure to run `bundle install`.
|
|
21
|
-
|
|
22
|
-
### Using `bento`
|
|
23
|
-
|
|
24
|
-
#### build
|
|
25
|
-
|
|
26
|
-
To build multiple templates for all providers (VirtualBox, Fusion, Parallels, etc):
|
|
27
|
-
|
|
28
|
-
$ bento build debian-8.6-amd64 debian-8.6-i386
|
|
29
|
-
|
|
30
|
-
To build a box for a single provider:
|
|
31
|
-
|
|
32
|
-
$ bento build --only=virtualbox-iso debian-8.6-amd64
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
*NOTE*: The following commands rely on the environmental variables
|
|
36
|
-
`ATLAS_TOKEN` and `ATLAS_ORG` being correctly set.
|
|
37
|
-
|
|
38
|
-
#### upload
|
|
39
|
-
|
|
40
|
-
To upload built boxes to [Atlas][atlas].
|
|
41
|
-
|
|
42
|
-
$ bento upload
|
|
43
|
-
|
|
44
|
-
#### release
|
|
45
|
-
|
|
46
|
-
$ bento release debian-8.6 2.3.3
|
|
47
|
-
|
|
48
|
-
#### revoke
|
|
49
|
-
|
|
50
|
-
$ bento revoke debian-8.6 2.3.3
|
|
51
|
-
|
|
52
|
-
#### delete
|
|
53
|
-
|
|
54
|
-
$ bento delete debian-8.6 2.3.3
|
|
55
|
-
|
|
56
|
-
## Versioning
|
|
57
|
-
|
|
58
|
-
bento-ya aims to adhere to [Semantic Versioning 2.0.0][semver].
|
|
59
|
-
|
|
60
|
-
## License
|
|
61
|
-
|
|
62
|
-
Apache License, Version 2.0 (see [LICENSE][license])
|
|
63
|
-
|
|
64
|
-
[license]: https://github.com/cheeseplus/bento-ya/blob/master/LICENSE
|
|
65
|
-
[semver]: http://semver.org/
|
|
66
|
-
[atlas]: https://atlas.hashicorp.com
|
data/Rakefile
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
require "bundler/gem_tasks"
|
|
2
|
-
|
|
3
|
-
begin
|
|
4
|
-
require "rspec/core/rake_task"
|
|
5
|
-
|
|
6
|
-
RSpec::Core::RakeTask.new do |t|
|
|
7
|
-
t.pattern = "spec/**/*_spec.rb"
|
|
8
|
-
end
|
|
9
|
-
rescue LoadError
|
|
10
|
-
desc "rspec is not installed, this task is disabled"
|
|
11
|
-
task :spec do
|
|
12
|
-
abort "rspec is not installed. `(sudo) gem install rspec` to run unit tests"
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
task :default => :spec
|
|
17
|
-
|
|
18
|
-
require "chefstyle"
|
|
19
|
-
require "rubocop/rake_task"
|
|
20
|
-
RuboCop::RakeTask.new(:style) do |task|
|
|
21
|
-
task.options += ["--display-cop-names", "--no-color"]
|
|
22
|
-
end
|
data/bento-ya.gemspec
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
$:.unshift File.expand_path("../lib", __FILE__)
|
|
3
|
-
require "bento/version"
|
|
4
|
-
require "English"
|
|
5
|
-
|
|
6
|
-
Gem::Specification.new do |gem|
|
|
7
|
-
gem.name = "bento-ya"
|
|
8
|
-
gem.version = Bento::VERSION
|
|
9
|
-
gem.license = "Apache-2.0"
|
|
10
|
-
gem.authors = ["Seth Thomas"]
|
|
11
|
-
gem.email = ["sthomas@chef.io"]
|
|
12
|
-
gem.description = "bento-ya builds bento boxes"
|
|
13
|
-
gem.summary = "A RubyGem for managing chef/bento builds"
|
|
14
|
-
gem.homepage = "https://github.com/cheeseplus/bento-ya"
|
|
15
|
-
|
|
16
|
-
gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
|
17
|
-
gem.bindir = "bin"
|
|
18
|
-
gem.executables = %w{bento}
|
|
19
|
-
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
|
20
|
-
gem.require_paths = ["lib"]
|
|
21
|
-
|
|
22
|
-
gem.required_ruby_version = ">= 2.3.1"
|
|
23
|
-
|
|
24
|
-
gem.add_dependency "mixlib-shellout", ">= 2.3.2"
|
|
25
|
-
gem.add_dependency "vagrant_cloud", "~> 1.0"
|
|
26
|
-
end
|