mixlib-install 0.8.0.alpha.8 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fe243313ad84e3ae88dc0708806eb15c43f76a11
4
- data.tar.gz: 470d541528a8c2d1f7147632f43a1e932e7dd875
3
+ metadata.gz: 7c49c14b6182e48d0e62bdddc9677cc8c368eb30
4
+ data.tar.gz: 36429f8f5161f5ed5ea3a75aaeafc6ebdf43c3d1
5
5
  SHA512:
6
- metadata.gz: f5a37cf8df4a56bb141995f514899895a61634fa2bd7a8d09373bfd17cd95709411c32017991867caccb61ab96e860cadbdfc5ae0accd59ce961e5209d933bc7
7
- data.tar.gz: 94cf89573f423781f835a31ec99290b9fcefc71758c44ee7b18142c112b1ba18bd7852ac32390f56906ef968755aced6830486ed79569796eca47cfa006071f3
6
+ metadata.gz: 5560590bf8b7e98ac892073bb8f89ff18d31b0ad285c153d8257c5295d1926e6525e6bc40554886e8a5340c6e02a88be76b5323ecc4d963dce7021818a29bd28
7
+ data.tar.gz: 93358f525f3b45e3ef426b0312e61f2151886a6d6c80fff2ee8a37524769ed118ba68fd59b536c861be302154f4e6b4f8ddf1be023681406421b7ff1631d6a83
data/README.md CHANGED
@@ -35,6 +35,20 @@ artifacts.first.url
35
35
  # => "http://opscode-omnibus-packages-current.s3.amazonaws.com/mac_os_x/10.9/x86_64/chef-12.5.1%2B20151009083009-1.dmg"
36
36
  ```
37
37
 
38
+ ### Detect platform information
39
+ ```ruby
40
+ options = {
41
+ channel: :current,
42
+ product_name: 'chef',
43
+ product_version: :latest
44
+ }
45
+
46
+ artifact = Mixlib::Install.new(options).detect_platform
47
+
48
+ artifact.platform # => "mac_os_x"
49
+ artifact.platform_version # => "10.10"
50
+ ```
51
+
38
52
  ## Unstable channel
39
53
  The `:unstable` channel is currently only available when connected to Chef's internal network.
40
54
  Configure Artifactory access by setting the following environment variables:
@@ -18,6 +18,7 @@
18
18
  #
19
19
 
20
20
  require "mixlib/versioning"
21
+ require "mixlib/shellout"
21
22
 
22
23
  require "mixlib/install/backend"
23
24
  require "mixlib/install/options"
@@ -37,8 +38,10 @@ module Mixlib
37
38
  #
38
39
  # Fetch artifact metadata information
39
40
  #
40
- # @return [ArtifactInfo] fetched artifact data
41
- #
41
+ # @return [Array<ArtifactInfo>] list of fetched artifact data for the configured
42
+ # channel, product name, and product version.
43
+ # @return [ArtifactInfo] fetched artifact data for the configured
44
+ # channel, product name, product version and platform info
42
45
  def artifact_info
43
46
  Backend.info(options)
44
47
  end
@@ -94,7 +97,9 @@ module Mixlib
94
97
  def upgrade_available?
95
98
  return true if current_version.nil?
96
99
 
97
- available_ver = Mixlib::Versioning.parse(artifact_info.first.version)
100
+ artifact = artifact_info
101
+ artifact = artifact.first if artifact.is_a? Array
102
+ available_ver = Mixlib::Versioning.parse(artifact.version)
98
103
  current_ver = Mixlib::Versioning.parse(current_version)
99
104
  (available_ver > current_ver)
100
105
  end
@@ -111,11 +116,14 @@ module Mixlib
111
116
  # Returns a Hash containing the platform info options
112
117
  #
113
118
  def self.detect_platform
114
- platform_info = if RbConfig::CONFIG["host_os"] =~ /mswin|mingw/
115
- `#{self.detect_platform_ps1}`.split
116
- else
117
- `#{self.detect_platform_sh}`.split
118
- end
119
+ detect_command = if Gem.win_platform?
120
+ Mixlib::ShellOut.new(self.detect_platform_ps1)
121
+ else
122
+ Mixlib::ShellOut.new(self.detect_platform_sh)
123
+ end
124
+
125
+ detect_command.run_command
126
+ platform_info = detect_command.stdout.split
119
127
 
120
128
  {
121
129
  platform: platform_info[0],
@@ -27,7 +27,7 @@ module Mixlib
27
27
  backend = if options.for_artifactory?
28
28
  Backend::Artifactory.new(options)
29
29
  else
30
- Backend::Omnitruck.new(options)
30
+ Backend::Bintray.new(options)
31
31
  end
32
32
 
33
33
  backend.info
@@ -113,7 +113,7 @@ module Mixlib
113
113
  # @return [Array<ArtifactInfo>] Array of info about found artifacts
114
114
  #
115
115
  def bintray_artifacts
116
- version = options.product_version == :latest ? latest_version : options.product_version
116
+ version = options.latest_version? ? latest_version : options.product_version
117
117
  results = bintray_get("#{options.channel}/#{options.product_name}/versions/#{version}/files")
118
118
 
119
119
  #
@@ -69,7 +69,7 @@ module Mixlib
69
69
  sudo_command}
70
70
 
71
71
  def initialize(version, powershell = false, opts = {})
72
- @version = version || "latest"
72
+ @version = (version || "latest").to_s.downcase
73
73
  @powershell = powershell
74
74
  @http_proxy = nil
75
75
  @https_proxy = nil
@@ -198,7 +198,7 @@ module Mixlib
198
198
 
199
199
  url = "#{base}#{endpoint}"
200
200
  url << "?p=windows&m=x86_64&pv=2008r2" # same package for all versions
201
- url << "&v=#{CGI.escape(version.to_s.downcase)}"
201
+ url << "&v=#{CGI.escape(version)}" unless %w{latest true nightlies}.include?(version)
202
202
  url << "&prerelease=true" if prerelease
203
203
  url << "&nightlies=true" if nightlies
204
204
  url
@@ -1,5 +1,5 @@
1
1
  module Mixlib
2
2
  class Install
3
- VERSION = "0.8.0.alpha.8"
3
+ VERSION = "1.0.0"
4
4
  end
5
5
  end
@@ -17,8 +17,9 @@ Gem::Specification.new do |spec|
17
17
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
18
  spec.require_paths = ["lib"]
19
19
 
20
- spec.add_dependency "artifactory", "~> 2.3.0"
21
- spec.add_dependency "mixlib-versioning", "~> 1.1.0"
20
+ spec.add_dependency "artifactory", ">= 2.3.0"
21
+ spec.add_dependency "mixlib-versioning", ">= 1.1.0"
22
+ spec.add_dependency "mixlib-shellout", ">= 2.2.6"
22
23
 
23
24
  spec.add_development_dependency "bundler"
24
25
  spec.add_development_dependency "rake", "~> 10.0"
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: 0.8.0.alpha.8
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thom May
@@ -9,36 +9,50 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-03-28 00:00:00.000000000 Z
12
+ date: 2016-03-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: artifactory
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: 2.3.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - "~>"
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: 2.3.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: mixlib-versioning
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - "~>"
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
34
  version: 1.1.0
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - "~>"
39
+ - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: 1.1.0
42
+ - !ruby/object:Gem::Dependency
43
+ name: mixlib-shellout
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: 2.2.6
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 2.2.6
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: bundler
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -188,9 +202,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
188
202
  version: '0'
189
203
  required_rubygems_version: !ruby/object:Gem::Requirement
190
204
  requirements:
191
- - - ">"
205
+ - - ">="
192
206
  - !ruby/object:Gem::Version
193
- version: 1.3.1
207
+ version: '0'
194
208
  requirements: []
195
209
  rubyforge_project:
196
210
  rubygems_version: 2.5.2
@@ -198,3 +212,4 @@ signing_key:
198
212
  specification_version: 4
199
213
  summary: A mixin to help with omnitruck installs
200
214
  test_files: []
215
+ has_rdoc: