mixlib-install 2.1.0 → 2.1.1

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
  SHA1:
3
- metadata.gz: 71d5046b449ed3757363647374ffc39eeb05f07c
4
- data.tar.gz: ae951ab2c716f58ffa374fcfb0602bf610dfaf29
3
+ metadata.gz: 2c1268ffb5cddeeb84f766f54857d73636e7955c
4
+ data.tar.gz: b4ee9a98f94b696ab347bf05892dbdcd3e01372a
5
5
  SHA512:
6
- metadata.gz: ba5b829af49cc93b5d25ae17f617641bdf9a02cf0bb614dbb76dca789af977a5daa0603d994a414dea4639d93a8638e281af7d5d6431db686d64a2b97eef5d2b
7
- data.tar.gz: 515fedd4a41787f1dbee8e6e697846f595e2e166d4664a82fcc27d248d0de6189ebaf2436cc2e0150c48d5252fd2f08b23c03bc9614f530ac322c9c4cb276203
6
+ metadata.gz: 5cd802741f2740e5ea9b4842dea40f9be73e0309eee9b3fe9faba207a5da9bab73274dc8c685d8f3bc8ebc4084dd81e4f1bc6b53f4e8629b448a0ce3fe17a5b3
7
+ data.tar.gz: 6bbc62c1c7b4013910080bbe881479f68bfc3c5854d5e37b2ec59e62393496dcb64b585103c94668a8e1380e792623f1b177d4bbf59564f0151079b6d5176e66
@@ -30,4 +30,4 @@ env:
30
30
  # secret access key
31
31
  - secure: "Ut5ARdSnWiFVAtRZ7U+CPgihi59J/KgsMFXunJjBCYyfwaDxrIsAbjddhP3lu2d/xLtvQ26SodhnMh6VMfgBFljY1s4lgjlZU2xU5RCpXFsEhUzHjryVTEgEWYgWkGrTfvalB9gnrsRxiyOh6ZvlW7QoPED+j75FSGwj6rjGCYf/7oUa3Qlt2Pymma5ijjvemgcIEKngO7Dnh3dpFR/J4S0AZdZG6HtJvYpQ2gdvH5faFjYlKHp8W/PMuOuxq2w8Pcjw009VgOjLoFAFYhFWX3hGd0b+N1xBHJDlqaBk2UCCqaKtYrhAsgQNkFiPMmNdDUtscjKx81A8fBUJOUhUxWBFhL3QM2ymuZziPQcnikpi6EPRHRyv3P6MOSyEB2DPpzFq/tEniTBW6o9QL6dHYOaPm/CBtUJ36gEvrSEJQZyhxUTQdamjWIMOTcq1/uwjp0T28rdth0o4BoGALkNQxjaV9iPHBCNtZgPdLoG9v/5CyGwlRQaY6JSVxBHdRcD9+BfwLT84K+68NPo7xXBBar0B1kBOLExI3EHLTxaspkicM2DINicUZk+SNFdInuiByv9NT7sWWbISnk6EagxPxu8D2p1zcMh6cJ8DfFz0rws+ndGiPwInjoslSV7N8Ndi4j9nTKtv9qAImJlthzPDbHY8ghz0TrXWdtwzPet7j2s="
32
32
  # windows admin password
33
- # - secure: "lxe9NYpwV19g2mBa7aQoJX372hktSSn/g5oU1GDWYpi59YwpbYXP/Al/XXwq1ZfNzN+BlXw3tJPlVaEkfSQBi0AaWLJ6Kw5+a4tkIkwMyMPJQh+pKnADZK2pd+Hhrr7CRtnaT6w4V2sZCIfcdlLnKmez/BMNNdBn1+WAfE+aN224JK43rXxgLe4B9CcXCsUUORh6nJbB5f60D15qYokDu7ILi0RufyfyiJulqxIsXVNKtnUXOJRXZvDOPp9Y+2ur0HmVK7aiWr6JwXtODgrrDzZiWq99eR2ErDJB1AFUVMmudUykf5SWyivhvB4RStYDIIpG8EXrIhRKP+k9o4loqQBRcRBGvEMLdyupi7TzuryzK7j2XzhJFD9Eg+50Y5By87lRfvltuAJaDkRPfwIzSbWsh0Lb7YwUXI9a+bJebsteTPSFjb1YOYvkQCV2CB5pH68QInw8Hu9o2hmUkuoNWqqvVaxDI8z3peympfFlVtvTC9eOI60Tdv+pSCyQhBN0/II8FT/fylwQsOL+i8Hez9NIRdaRkx0JEpY56NloErd4An9zpY/xCAa/6JfzMWn7eD673MRVJW0u/j5IGuRAksuUlGZTQS+qudF4ZgVJaacm6qARULaesuCNbufZYtRB0Hg+GINQrUSfYKBw6BZUk2T9ZQ2zFsnF12k0yl9Qr7I="
33
+ - secure: "lxe9NYpwV19g2mBa7aQoJX372hktSSn/g5oU1GDWYpi59YwpbYXP/Al/XXwq1ZfNzN+BlXw3tJPlVaEkfSQBi0AaWLJ6Kw5+a4tkIkwMyMPJQh+pKnADZK2pd+Hhrr7CRtnaT6w4V2sZCIfcdlLnKmez/BMNNdBn1+WAfE+aN224JK43rXxgLe4B9CcXCsUUORh6nJbB5f60D15qYokDu7ILi0RufyfyiJulqxIsXVNKtnUXOJRXZvDOPp9Y+2ur0HmVK7aiWr6JwXtODgrrDzZiWq99eR2ErDJB1AFUVMmudUykf5SWyivhvB4RStYDIIpG8EXrIhRKP+k9o4loqQBRcRBGvEMLdyupi7TzuryzK7j2XzhJFD9Eg+50Y5By87lRfvltuAJaDkRPfwIzSbWsh0Lb7YwUXI9a+bJebsteTPSFjb1YOYvkQCV2CB5pH68QInw8Hu9o2hmUkuoNWqqvVaxDI8z3peympfFlVtvTC9eOI60Tdv+pSCyQhBN0/II8FT/fylwQsOL+i8Hez9NIRdaRkx0JEpY56NloErd4An9zpY/xCAa/6JfzMWn7eD673MRVJW0u/j5IGuRAksuUlGZTQS+qudF4ZgVJaacm6qARULaesuCNbufZYtRB0Hg+GINQrUSfYKBw6BZUk2T9ZQ2zFsnF12k0yl9Qr7I="
@@ -1,5 +1,8 @@
1
1
  # Change Log
2
2
 
3
+ ## [2.1.1]
4
+ - Add `mixlib-install` command line utility
5
+
3
6
  ## [2.1.0]
4
7
  - Added new attributes to ArtifactInfo
5
8
  - product_name, product_description, license, license_content, software_dependencies
data/README.md CHANGED
@@ -2,10 +2,24 @@
2
2
 
3
3
  # Mixlib::Install
4
4
 
5
- ## Usage
5
+ ## Command Line Usage
6
+ ```
7
+ $ gem install mixlib-install
8
+ ```
9
+
10
+ ```
11
+ # Download latest stable chef for current platform
12
+ $ mixlib-install download chef
13
+ ```
14
+
15
+ Run `$ mixlib-install help` for additional commands and options.
16
+
17
+ ## API Usage
6
18
 
7
19
  ### Get URL for specific platform and package version
8
20
  ```ruby
21
+ require 'mixlib/install'
22
+
9
23
  options = {
10
24
  channel: :current,
11
25
  product_name: 'chef',
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
3
 
4
- task default: :ci
4
+ task default: :test
5
5
 
6
6
  desc "Run specs"
7
7
  RSpec::Core::RakeTask.new(:spec) do |spec|
@@ -22,7 +22,12 @@ desc "Run all tests"
22
22
  task test: [:style, :spec]
23
23
 
24
24
  desc "Run tests for Travis CI"
25
- task ci: [:style, :spec]
25
+ task ci: [:style, :spec, :functional]
26
+
27
+ desc "Run functional"
28
+ task "functional" do
29
+ system("bundle exec rspec functional")
30
+ end
26
31
 
27
32
  desc "Render product matrix documentation"
28
33
  task "matrix" do
@@ -6,7 +6,9 @@ ruby_block "get ip" do
6
6
  end
7
7
 
8
8
  execute "run inspec" do
9
- command lazy { "inspec exec verify.rb -t winrm://Administrator@#{node['ip']} --password '#{ENV['TF_VAR_admin_password'] || 'Pas5w0rD'}'" }
9
+ command lazy { "inspec exec verify.rb -t winrm://Administrator@#{node['ip']} --password $WINDOWS_PASSWORD" }
10
10
  cwd "#{node['chef-acceptance']['suite-dir']}/inspec"
11
- # sensitive true
11
+ environment(
12
+ "WINDOWS_PASSWORD" => ENV["TF_VAR_admin_password"] || "Pas5w0rD"
13
+ )
12
14
  end
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ Signal.trap("INT") { exit 1 }
4
+
5
+ $:.push File.expand_path("../lib", __FILE__)
6
+ $stdout.sync = true
7
+
8
+ require "mixlib/install/cli"
9
+
10
+ begin
11
+ Mixlib::Install::Cli.start(ARGV)
12
+ rescue StandardError => e
13
+ abort e.message
14
+ end
@@ -3,14 +3,12 @@
3
3
  set -evx
4
4
 
5
5
  # run unit tests
6
- /opt/chefdk/embedded/bin/bundle install && /opt/chefdk/bin/chef exec rake
6
+ /opt/chefdk/embedded/bin/bundle install && /opt/chefdk/bin/chef exec rake ci
7
7
 
8
8
  # Don't run acceptance tests on forks. The decryption keys are not available.
9
9
  if [ "${TRAVIS_REPO_SLUG}" = "chef/mixlib-install" ]; then
10
10
  # setup acceptance tests
11
11
  cd acceptance && export BUNDLE_GEMFILE=$PWD/Gemfile && /opt/chefdk/embedded/bin/bundle install && export APPBUNDLER_ALLOW_RVM=true
12
12
  # run acceptances tests and force cleanup
13
- # only testing ubuntu until issues with powershell suite resovled:
14
- # - currently no way to mask password (sensitive true) AND know what the error is if inspec fails
15
- /opt/chefdk/embedded/bin/bundle exec chef-acceptance test ubuntu --force-destroy
13
+ /opt/chefdk/embedded/bin/bundle exec chef-acceptance test --force-destroy
16
14
  fi
@@ -0,0 +1,192 @@
1
+ #
2
+ # Copyright:: Copyright (c) 2016 Chef, Inc.
3
+ # License:: Apache License, Version 2.0
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+
18
+ require_relative "./spec_helper"
19
+ require "mixlib/install/cli"
20
+
21
+ describe "mixlib-install executable", :type => :aruba do
22
+ let(:args) { nil }
23
+
24
+ before(:all) do
25
+ puts "
26
+ ****************************************
27
+ TESTS ARE SLOW - DOWNLOADS PACKAGES.
28
+ ****************************************
29
+
30
+ "
31
+ end
32
+
33
+ before(:each) { run("bin/mixlib-install #{command} #{args}") }
34
+
35
+ describe "version command" do
36
+ let(:command) { "version" }
37
+
38
+ it "prints the mixlib-install version" do
39
+ require "mixlib/install/version"
40
+ expect(last_command_started).to have_output Mixlib::Install::VERSION
41
+ end
42
+ end
43
+
44
+ describe "list-versions command" do
45
+ let(:command) { "list-versions" }
46
+
47
+ context "with valid args" do
48
+ let(:args) { "chef stable" }
49
+
50
+ it "prints the versions" do
51
+ expect(last_command_started).to have_output /12.0.3/
52
+ end
53
+ end
54
+
55
+ context "with invalid args" do
56
+ let(:args) { "foo bar" }
57
+
58
+ it "returns error message" do
59
+ expect(last_command_started).to have_output /Unknown product name foo/
60
+ expect(last_command_started).to have_output /Unknown channel bar/
61
+ end
62
+ end
63
+ end
64
+
65
+ describe "install-script command" do
66
+ let(:command) { "install-script" }
67
+
68
+ context "with no args" do
69
+ it "returns shell script to stdout" do
70
+ expect(last_command_started).to have_output /end of install_package.sh/
71
+ end
72
+ end
73
+
74
+ context "with ps1 type" do
75
+ let(:args) { "-t ps1" }
76
+
77
+ it "returns powershell script to stdout" do
78
+ expect(last_command_started).to have_output /export-modulemember -function 'Install-Project','Get-ProjectMetadata' -alias 'install'/
79
+ end
80
+ end
81
+
82
+ context "with invalid type" do
83
+ let(:args) { "-t foo" }
84
+
85
+ it "errors an error" do
86
+ expect(last_command_started).to have_output /type must be one of/
87
+ end
88
+ end
89
+
90
+ context "with alternate endpoint" do
91
+ let(:args) { "--endpoint https://omnitruck-custom.chef.io" }
92
+
93
+ it "contains the new endpoint" do
94
+ expect(last_command_started).to have_output /https:\/\/omnitruck-custom.chef.io/
95
+ end
96
+ end
97
+
98
+ context "with output option" do
99
+ let(:args) { "-o script.sh" }
100
+
101
+ it "writes to a file" do
102
+ expect("script.sh").to be_an_existing_file
103
+ end
104
+ end
105
+ end
106
+
107
+ describe "download command" do
108
+ let(:command) { "download" }
109
+
110
+ context "without args" do
111
+ it "exits with required args error" do
112
+ expect(last_command_started).to have_output /"mixlib-install #{command}" was called with no arguments/
113
+ end
114
+ end
115
+
116
+ context "with chef product" do
117
+ let(:args) { "chef" }
118
+
119
+ it "downloads a chef artifact" do
120
+ expect(last_command_started).to have_output /Download saved to/
121
+ end
122
+ end
123
+
124
+ context "with url flag" do
125
+ let(:args) { "chef --url" }
126
+
127
+ it "outputs the url" do
128
+ expect(last_command_started).to have_output /https:\/\/packages.chef.io\/files\/stable\/chef/
129
+ end
130
+ end
131
+
132
+ context "with attributes arg" do
133
+ let(:args) { "chef --url --attributes" }
134
+
135
+ it "outputs the attributes" do
136
+ expect(last_command_started).to have_output /"license": "Apache-2.0"/
137
+ end
138
+ end
139
+
140
+ context "with platform arg" do
141
+ let(:args) { "chef -p ubuntu" }
142
+
143
+ it "fails with missing args error" do
144
+ expect(last_command_started).to have_output /Must provide platform version and architecture when specifying a platform/
145
+ end
146
+ end
147
+
148
+ context "with valid platform version and architecture" do
149
+ let(:args) { "chef -p ubuntu -l 14.04 -a x86_64 --attributes" }
150
+ let(:latest_version) { Mixlib::Install.available_versions("chef", "stable").last }
151
+ let(:filename) { "chef_#{latest_version}-1_amd64.deb" }
152
+
153
+ it "has the correct artifact" do
154
+ require "digest"
155
+ sha256 = Digest::SHA256.hexdigest("./tmp/aruba/#{filename}")
156
+ expect(last_command_started).to have_output /sha256/
157
+ end
158
+ end
159
+
160
+ context "with invalid platform version and architecture" do
161
+ let(:args) { "chef -p ubuntu -l 99.99 -a x86_64" }
162
+
163
+ it "returns no results" do
164
+ expect(last_command_started).to have_output /No results found./
165
+ end
166
+ end
167
+
168
+ context "with specified version" do
169
+ let(:args) { "chef -v 12.0.3 " }
170
+
171
+ it "returns the correct artifact" do
172
+ expect(last_command_started).to have_output /chef[-_]12.0.3-1/
173
+ end
174
+ end
175
+
176
+ context "with specified channel" do
177
+ let(:args) { "chef -c current " }
178
+
179
+ it "returns the correct artifact" do
180
+ expect(last_command_started).to have_output /files\/current\/chef/
181
+ end
182
+ end
183
+
184
+ context "with specified directory" do
185
+ let(:args) { "chef -d mydir " }
186
+
187
+ it "downloads to dir" do
188
+ expect(last_command_started).to have_output /Download saved to .*mydir\/chef/
189
+ end
190
+ end
191
+ end
192
+ end
@@ -0,0 +1,16 @@
1
+ require "aruba/rspec"
2
+
3
+ Aruba.configure do |config|
4
+ config.exit_timeout = 120
5
+ config.io_wait_timeout = 2
6
+ config.activate_announcer_on_command_failure = [:stderr, :stdout, :command]
7
+ end
8
+
9
+ RSpec.configure do |config|
10
+ config.filter_run focus: true
11
+ config.run_all_when_everything_filtered = true
12
+
13
+ config.expect_with :rspec do |c|
14
+ c.syntax = :expect
15
+ end
16
+ end
@@ -0,0 +1,118 @@
1
+ require "mixlib/install"
2
+ require "thor"
3
+
4
+ module Mixlib
5
+ class Install
6
+ class Cli < Thor
7
+ include Thor::Actions
8
+
9
+ desc "version", "print mixlib-install version"
10
+ def version
11
+ require "mixlib/install/version"
12
+ say Mixlib::Install::VERSION
13
+ end
14
+
15
+ desc "list-versions PRODUCT_NAME CHANNEL", "list available version for a product/channel"
16
+ def list_versions(product_name, channel)
17
+ say Mixlib::Install.available_versions(product_name, channel).join("\n")
18
+ end
19
+
20
+ desc "download PRODUCT_NAME", "download an artifact"
21
+ option :channel,
22
+ default: :stable,
23
+ aliases: ["-c"]
24
+ option :version,
25
+ default: :latest,
26
+ aliases: ["-v"]
27
+ option :directory,
28
+ default: Dir.pwd,
29
+ aliases: ["-d"]
30
+ option :platform,
31
+ aliases: ["-p"]
32
+ option :platform_version,
33
+ aliases: ["-l"]
34
+ option :architecture,
35
+ aliases: ["-a"]
36
+ option :url,
37
+ desc: "Print download URL without downloading the file",
38
+ type: :boolean
39
+ option :attributes,
40
+ desc: "Print artifact attributes",
41
+ type: :boolean
42
+ def download(product_name)
43
+ # Set mininum options
44
+ mixlib_install_options = {
45
+ channel: options[:channel].to_sym,
46
+ product_name: product_name,
47
+ product_version: options[:version],
48
+ }
49
+
50
+ # Set platform info or auto detect platform
51
+ if options[:platform]
52
+ if options[:platform_version].nil? || options[:architecture].nil?
53
+ abort "Must provide platform version and architecture when specifying a platform"
54
+ end
55
+ mixlib_install_options[:platform] = options[:platform]
56
+ mixlib_install_options[:platform_version] = options[:platform_version]
57
+ mixlib_install_options[:architecture] = options[:architecture]
58
+ else
59
+ mixlib_install_options.merge!(Mixlib::Install.detect_platform)
60
+ end
61
+
62
+ say "Querying for artifact with options:\n#{JSON.pretty_generate(mixlib_install_options)}"
63
+ artifact = Mixlib::Install.new(mixlib_install_options).artifact_info
64
+ if artifact.nil? || artifact.is_a?(Array)
65
+ abort "No results found."
66
+ end
67
+
68
+ if options[:url]
69
+ say artifact.url
70
+ else
71
+ FileUtils.mkdir_p options[:directory]
72
+ file = File.join(options[:directory], File.basename(artifact.url))
73
+
74
+ require "json"
75
+ require "net/http"
76
+
77
+ say "Starting download #{artifact.url} to #{file}"
78
+ uri = URI.parse(artifact.url)
79
+ Net::HTTP.start(uri.host) do |http|
80
+ resp = http.get(uri.path)
81
+ open(file, "wb") do |io|
82
+ io.write(resp.body)
83
+ end
84
+ end
85
+
86
+ say "Download saved to #{file}"
87
+ end
88
+
89
+ say JSON.pretty_generate(artifact.to_hash) if options[:attributes]
90
+ end
91
+
92
+ desc "install-script", "generate install bootstrap script for shell or powershell"
93
+ option :endpoint,
94
+ desc: "Alternate omnitruck endpoint"
95
+ option :file,
96
+ desc: "Write script to file",
97
+ aliases: ["-o"]
98
+ option :type,
99
+ desc: "Install script type: #{Mixlib::Install::Options::SUPPORTED_SHELL_TYPES.join(", ")}",
100
+ aliases: ["-t"],
101
+ default: "sh"
102
+ def install_script
103
+ if !Mixlib::Install::Options::SUPPORTED_SHELL_TYPES.include? options[:type].to_sym
104
+ abort "type must be one of: #{Mixlib::Install::Options::SUPPORTED_SHELL_TYPES.join(", ")}"
105
+ end
106
+ context = {}
107
+ context[:base_url] = options[:endpoint] if options[:endpoint]
108
+ script = eval("Mixlib::Install.install_#{options[:type]}(context)")
109
+ if options[:file]
110
+ File.open(options[:file], "w") { |io| io.write(script) }
111
+ say "Script written to #{options[:file]}"
112
+ else
113
+ say script
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
@@ -46,7 +46,7 @@ module Mixlib
46
46
  # and returnt the contents of the script
47
47
  if File.exist? "#{script_path}.erb"
48
48
  # Default values to use incase they are not set in the context
49
- context[:base_url] ||= "https://omnitruck.chef.io/"
49
+ context[:base_url] ||= "https://omnitruck.chef.io"
50
50
 
51
51
  context_object = OpenStruct.new(context).instance_eval { binding }
52
52
  ERB.new(File.read("#{script_path}.erb")).result(context_object)
@@ -20,7 +20,7 @@
20
20
  echo "Getting information for $project $channel $version for $platform..."
21
21
 
22
22
  metadata_filename="$tmp_dir/metadata.txt"
23
- metadata_url="<%= base_url %>$channel/$project/metadata?v=$version&p=$platform&pv=$platform_version&m=$machine"
23
+ metadata_url="<%= base_url %>/$channel/$project/metadata?v=$version&p=$platform&pv=$platform_version&m=$machine"
24
24
 
25
25
  do_download "$metadata_url" "$metadata_filename"
26
26
 
@@ -60,7 +60,7 @@ function Get-ProjectMetadata {
60
60
  Write-Verbose "Architecture: $architecture"
61
61
  Write-Verbose "Project: $project"
62
62
 
63
- $metadata_base_url = "$($channel)/$($project)/metadata"
63
+ $metadata_base_url = "/$($channel)/$($project)/metadata"
64
64
  $metadata_array = ("?v=$($version)",
65
65
  "p=$platform",
66
66
  "pv=$platform_version",
@@ -1,5 +1,5 @@
1
1
  module Mixlib
2
2
  class Install
3
- VERSION = "2.1.0"
3
+ VERSION = "2.1.1"
4
4
  end
5
5
  end
@@ -14,20 +14,22 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = "https://chef.io"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
17
+ spec.executables = ["mixlib-install"]
18
18
  spec.require_paths = ["lib"]
19
19
 
20
20
  spec.add_dependency "artifactory"
21
- spec.add_dependency "mixlib-versioning"
22
21
  spec.add_dependency "mixlib-shellout"
22
+ spec.add_dependency "mixlib-versioning"
23
+ spec.add_dependency "thor"
23
24
 
25
+ spec.add_development_dependency "aruba"
24
26
  spec.add_development_dependency "bundler"
25
- spec.add_development_dependency "rake"
26
- spec.add_development_dependency "rspec"
27
+ spec.add_development_dependency "chefstyle"
27
28
  spec.add_development_dependency "pry"
29
+ spec.add_development_dependency "rake"
28
30
  spec.add_development_dependency "rb-readline"
31
+ spec.add_development_dependency "rspec"
32
+ spec.add_development_dependency "simplecov"
29
33
  spec.add_development_dependency "vcr"
30
34
  spec.add_development_dependency "webmock", "~> 1.0"
31
- spec.add_development_dependency "chefstyle"
32
- spec.add_development_dependency "simplecov"
33
35
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mixlib-install
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thom May
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-10-05 00:00:00.000000000 Z
12
+ date: 2016-10-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: artifactory
@@ -25,6 +25,20 @@ dependencies:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: mixlib-shellout
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
28
42
  - !ruby/object:Gem::Dependency
29
43
  name: mixlib-versioning
30
44
  requirement: !ruby/object:Gem::Requirement
@@ -40,7 +54,7 @@ dependencies:
40
54
  - !ruby/object:Gem::Version
41
55
  version: '0'
42
56
  - !ruby/object:Gem::Dependency
43
- name: mixlib-shellout
57
+ name: thor
44
58
  requirement: !ruby/object:Gem::Requirement
45
59
  requirements:
46
60
  - - ">="
@@ -54,7 +68,7 @@ dependencies:
54
68
  - !ruby/object:Gem::Version
55
69
  version: '0'
56
70
  - !ruby/object:Gem::Dependency
57
- name: bundler
71
+ name: aruba
58
72
  requirement: !ruby/object:Gem::Requirement
59
73
  requirements:
60
74
  - - ">="
@@ -68,7 +82,7 @@ dependencies:
68
82
  - !ruby/object:Gem::Version
69
83
  version: '0'
70
84
  - !ruby/object:Gem::Dependency
71
- name: rake
85
+ name: bundler
72
86
  requirement: !ruby/object:Gem::Requirement
73
87
  requirements:
74
88
  - - ">="
@@ -82,7 +96,7 @@ dependencies:
82
96
  - !ruby/object:Gem::Version
83
97
  version: '0'
84
98
  - !ruby/object:Gem::Dependency
85
- name: rspec
99
+ name: chefstyle
86
100
  requirement: !ruby/object:Gem::Requirement
87
101
  requirements:
88
102
  - - ">="
@@ -110,7 +124,7 @@ dependencies:
110
124
  - !ruby/object:Gem::Version
111
125
  version: '0'
112
126
  - !ruby/object:Gem::Dependency
113
- name: rb-readline
127
+ name: rake
114
128
  requirement: !ruby/object:Gem::Requirement
115
129
  requirements:
116
130
  - - ">="
@@ -124,7 +138,7 @@ dependencies:
124
138
  - !ruby/object:Gem::Version
125
139
  version: '0'
126
140
  - !ruby/object:Gem::Dependency
127
- name: vcr
141
+ name: rb-readline
128
142
  requirement: !ruby/object:Gem::Requirement
129
143
  requirements:
130
144
  - - ">="
@@ -138,21 +152,21 @@ dependencies:
138
152
  - !ruby/object:Gem::Version
139
153
  version: '0'
140
154
  - !ruby/object:Gem::Dependency
141
- name: webmock
155
+ name: rspec
142
156
  requirement: !ruby/object:Gem::Requirement
143
157
  requirements:
144
- - - "~>"
158
+ - - ">="
145
159
  - !ruby/object:Gem::Version
146
- version: '1.0'
160
+ version: '0'
147
161
  type: :development
148
162
  prerelease: false
149
163
  version_requirements: !ruby/object:Gem::Requirement
150
164
  requirements:
151
- - - "~>"
165
+ - - ">="
152
166
  - !ruby/object:Gem::Version
153
- version: '1.0'
167
+ version: '0'
154
168
  - !ruby/object:Gem::Dependency
155
- name: chefstyle
169
+ name: simplecov
156
170
  requirement: !ruby/object:Gem::Requirement
157
171
  requirements:
158
172
  - - ">="
@@ -166,7 +180,7 @@ dependencies:
166
180
  - !ruby/object:Gem::Version
167
181
  version: '0'
168
182
  - !ruby/object:Gem::Dependency
169
- name: simplecov
183
+ name: vcr
170
184
  requirement: !ruby/object:Gem::Requirement
171
185
  requirements:
172
186
  - - ">="
@@ -179,11 +193,26 @@ dependencies:
179
193
  - - ">="
180
194
  - !ruby/object:Gem::Version
181
195
  version: '0'
196
+ - !ruby/object:Gem::Dependency
197
+ name: webmock
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - "~>"
201
+ - !ruby/object:Gem::Version
202
+ version: '1.0'
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '1.0'
182
210
  description:
183
211
  email:
184
212
  - thom@chef.io
185
213
  - patrick@chef.io
186
- executables: []
214
+ executables:
215
+ - mixlib-install
187
216
  extensions: []
188
217
  extra_rdoc_files: []
189
218
  files:
@@ -228,14 +257,18 @@ files:
228
257
  - acceptance/ubuntu_install_sh/terraform/application.tf
229
258
  - acceptance/ubuntu_install_sh/terraform/aws.tf
230
259
  - acceptance/ubuntu_install_sh/terraform/variables.tf
260
+ - bin/mixlib-install
231
261
  - ci/before-script.sh
232
262
  - ci/es-infrastructure.pem.enc
233
263
  - ci/script.sh
264
+ - functional/cli_spec.rb
265
+ - functional/spec_helper.rb
234
266
  - lib/mixlib/install.rb
235
267
  - lib/mixlib/install/artifact_info.rb
236
268
  - lib/mixlib/install/backend.rb
237
269
  - lib/mixlib/install/backend/base.rb
238
270
  - lib/mixlib/install/backend/package_router.rb
271
+ - lib/mixlib/install/cli.rb
239
272
  - lib/mixlib/install/generator.rb
240
273
  - lib/mixlib/install/generator/base.rb
241
274
  - lib/mixlib/install/generator/bourne.rb