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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7872edc96d6dc537bece121af04e66cb7adfc73efc917f9dca38163ad82d3825
4
- data.tar.gz: 709164d7132759335424bb7da48a956f0d2d4f361a0128ce13ff3eaf719774ce
3
+ metadata.gz: 281906c67ee3bd9713f00cd4c41c57319cf8125bda545c02ea6e53be1b03f52e
4
+ data.tar.gz: 6f364a93b9c5041dcabb5aa54f2c9132ee870e239aeb736176ccf7eae3d54b36
5
5
  SHA512:
6
- metadata.gz: 2b10638662ceaa2ac2e8ab38282a26d406b8eb9a224cfc9ef7fe292544c550a8afeb52835a84032dda3a471d8cabb9c9acd52e8abbf37ed2045b3018a428c788
7
- data.tar.gz: f070d593e1f415169d5cd3c972cecdb8e52714acf1e20a575f61e9cc01ff07f562f044c79322f83e0fca9639efd10490067050d0c81ca6216acad137eb39e2c0
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(File.dirname(__FILE__), %w{.. lib})
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
- $stderr.puts ">>> #{ex.message}"
16
- exit(($? && $?.exitstatus) || 99)
13
+ warn ">>> #{ex.message}"
14
+ exit(($CHILD_STATUS && $CHILD_STATUS.exitstatus) || 99)
17
15
  end
@@ -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, template = file.split("/")[0], file.split("/")[1]
42
+ dir = file.split("/")[0]
43
+ template = file.split("/")[1]
42
44
  Dir.chdir dir
43
- for_packer_run_with(template) do |md_file, var_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
@@ -35,7 +35,7 @@ class BuildMetadata
35
35
  end
36
36
 
37
37
  def git_revision
38
- sha = `git rev-parse HEAD`.strip
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
- if override_version
65
- override_version
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
@@ -11,7 +11,7 @@ require "bento/test"
11
11
  require "bento/upload"
12
12
 
13
13
  class Options
14
- NAME = File.basename($0).freeze
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 Atlas and S3
30
- release : release a version of a box on Atlas
31
- revoke : revoke a version of a box on Atlas
32
- delete : delete a version of a box from Atlas
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
- platforms_argv_proc = proc { |options|
37
- options.platforms = builds["public"] unless args.empty?
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 { |options|
41
- options.template_files = calculate_templates(args) unless args.empty?
41
+ templates_argv_proc = proc { |opts|
42
+ opts.template_files = calculate_templates(args) unless args.empty?
42
43
 
43
- options.template_files.each do |t|
44
- if !File.exists?("#{t}.json")
45
- $stderr.puts "File #{t}.json does not exist for template '#{t}'"
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 { |options|
52
- options.box = ARGV[0]
53
- options.version = ARGV[1]
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 { |options|
57
- options.md_json = ARGV[0]
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 { |options|
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: Proc.new {},
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.templates
210
+ @templates = opts.template_files
206
211
  end
207
212
 
208
213
  def start
@@ -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 = Hash.new
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"] = Hash.new
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 ||= compute_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 os_x?
91
+ def macos?
95
92
  !!(RUBY_PLATFORM =~ /darwin/)
96
93
  end
97
94
 
@@ -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, template = file.split("/")[0], file.split("/")[1]
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
- if !@modified.empty?
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 #{$?}" if $?.exitstatus != 0
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( "[#{template}] Error validating, exited #{$?}")
81
+ system(*cmd) || raise("[#{template}] Error validating, exited #{$CHILD_STATUS}")
80
82
  end
81
83
  end
82
84
  end
@@ -1,4 +1,3 @@
1
-
2
1
  module PackerExec
3
2
  def for_packer_run_with(template)
4
3
  Tempfile.open("#{template}-metadata.json") do |md_file|
@@ -56,7 +56,7 @@ class ProviderMetadata
56
56
  end
57
57
 
58
58
  def ver_vmware
59
- if os_x?
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 / OS X, exiting..." unless os_x?
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]
@@ -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", :timeout => 900, live_stream: STDOUT)
56
+ test = Mixlib::ShellOut.new("kitchen test", timeout: 900, live_stream: STDOUT)
57
57
  test.run_command
58
58
  test.error!
59
59
  end
@@ -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"].values.include?(box.name)
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("#{provider.download_url}")
40
- next unless builds_yml["slugs"].values.include?(box.name)
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("#{slug_provider.download_url}")
46
+ banner(slug_provider.download_url.to_s)
45
47
  end
46
48
  end
47
49
  end
@@ -1,3 +1,3 @@
1
1
  module Bento
2
- VERSION = "1.1.2"
2
+ VERSION = "1.3.0".freeze
3
3
  end
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.1.2
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: 2018-08-14 00:00:00.000000000 Z
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: '1.0'
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: '1.0'
40
+ version: '2.0'
41
41
  description: bento-ya builds bento boxes
42
42
  email:
43
- - sthomas@chef.io
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/cheeseplus/bento-ya
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
- rubyforge_project:
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
@@ -1,19 +0,0 @@
1
- sudo: false
2
- dist: trusty
3
-
4
- language: ruby
5
- cache: bundler
6
- rvm:
7
- - 2.4.1
8
- - ruby-head
9
-
10
- matrix:
11
- allow_failures:
12
- - rvm: ruby-head
13
-
14
- branches:
15
- only:
16
- - master
17
-
18
- script:
19
- - bundle exec chefstyle
@@ -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
- [![Gem Version](https://badge.fury.io/rb/bento-ya.svg)](http://badge.fury.io/rb/bento-ya) [![Build Status Master](https://travis-ci.org/cheeseplus/bento-ya.svg?branch=master)](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
@@ -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