chef-cli 4.0.0 → 4.0.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
  SHA256:
3
- metadata.gz: 60e2fef23b0a30ce5f7dcc08bb3a72a2166c7944e2edf80b79a01975f4721029
4
- data.tar.gz: 1270d7ff326fb8460a31b71b2fde6ec940a3700627a62aec10c14926c01b258e
3
+ metadata.gz: a10a665d45110e002c2e070387a8d91e0f6cdb365c8ed20b7f181739c0612e74
4
+ data.tar.gz: 8ee4a30784d2f1784a40d3be7bb5ef670970b6e9e55f922b1944d80253567ae1
5
5
  SHA512:
6
- metadata.gz: 0130ff765efec8876f369244a8b77ded247fe8a58a24b60561d361a0f9577a72a61db8d8ec34f8cd9e5e4b3f95eb9c0d1618211cf2dcce1a8be5b402be8a2028
7
- data.tar.gz: b7ee1e7672559a167b511afe308642eb13d28eaa89aaff9f0ac44bf3968aa049c8978df63b6e3d4ee66a17ab66539ef7337afa452194055773b7bb76110c5e9f
6
+ metadata.gz: '019fa209b216d7719c8c53ce8df805bd973edeeb84a386d2fc1d0dcc08e5094953ed952e8d1e21a31d85053ab9b752e40160674139e6e0929433c8d26ab59896'
7
+ data.tar.gz: 4f147e219f59c6b9d1ddf864c20aed77bdd99dc4165c5035b823f084824f10772518ff9e30a95f110a5270d7fd5a9c2551f9ffc542c7e21bf20e000370083851
@@ -117,11 +117,11 @@ module ChefCLI
117
117
  @omnibus_env ||=
118
118
  begin
119
119
  user_bin_dir = File.expand_path(File.join(Gem.user_dir, "bin"))
120
- path = [ omnibus_bin_dir, user_bin_dir, omnibus_embedded_bin_dir, ENV["PATH"] ]
120
+ path = [ omnibus_bin_dir, user_bin_dir, omnibus_embedded_bin_dir, ENV["PATH"].split(File::PATH_SEPARATOR) ]
121
121
  path << git_bin_dir if Dir.exist?(git_bin_dir)
122
122
  path << git_windows_bin_dir if Dir.exist?(git_windows_bin_dir)
123
123
  {
124
- "PATH" => path.join(File::PATH_SEPARATOR),
124
+ "PATH" => path.flatten.uniq.join(File::PATH_SEPARATOR),
125
125
  "GEM_ROOT" => Gem.default_dir,
126
126
  "GEM_HOME" => Gem.user_dir,
127
127
  "GEM_PATH" => Gem.path.join(File::PATH_SEPARATOR),
@@ -129,8 +129,6 @@ module ChefCLI
129
129
  end
130
130
  end
131
131
 
132
- private
133
-
134
132
  def omnibus_expand_path(*paths)
135
133
  dir = File.expand_path(File.join(paths))
136
134
  raise OmnibusInstallNotFound.new unless dir && File.directory?(dir)
@@ -138,6 +136,8 @@ module ChefCLI
138
136
  dir
139
137
  end
140
138
 
139
+ private
140
+
141
141
  def expected_omnibus_root
142
142
  File.expand_path(File.join(Gem.ruby, "..", "..", ".."))
143
143
  end
@@ -16,5 +16,5 @@
16
16
  #
17
17
 
18
18
  module ChefCLI
19
- VERSION = "4.0.0".freeze
19
+ VERSION = "4.0.1".freeze
20
20
  end
@@ -0,0 +1,111 @@
1
+ # Copyright:: Copyright (c) 2014-2018 Chef Software Inc.
2
+ # License:: Apache License, Version 2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ require "spec_helper"
18
+ require "chef-cli/helpers"
19
+
20
+ describe ChefCLI::Helpers do
21
+ context "path_check!" do
22
+
23
+ before do
24
+ allow(Gem).to receive(:ruby).and_return(ruby_path)
25
+ end
26
+
27
+ context "when installed via omnibus" do
28
+ before do
29
+ allow(ChefCLI::Helpers).to receive(:omnibus_install?).and_return true
30
+ end
31
+
32
+ context "on unix" do
33
+
34
+ let(:user_bin_dir) { File.expand_path(File.join(Gem.user_dir, "bin")) }
35
+ let(:omnibus_embedded_bin_dir) { "/opt/chef-workstation/embedded/bin" }
36
+ let(:omnibus_bin_dir) { "/opt/chef-workstation/bin" }
37
+ let(:expected_PATH) { [ omnibus_bin_dir, user_bin_dir, omnibus_embedded_bin_dir, ENV["PATH"].split(File::PATH_SEPARATOR) ] }
38
+ let(:expected_GEM_ROOT) { Gem.default_dir }
39
+ let(:expected_GEM_HOME) { Gem.user_dir }
40
+ let(:expected_GEM_PATH) { Gem.path.join(File::PATH_SEPARATOR) }
41
+ let(:ruby_path) { "/opt/chef-workstation/embedded/bin/ruby" }
42
+
43
+ it "#omnibus_env path" do
44
+ allow(ChefCLI::Helpers).to receive(:omnibus_bin_dir).and_return("/opt/chef-workstation/bin")
45
+ allow(ChefCLI::Helpers).to receive(:omnibus_embedded_bin_dir).and_return("/opt/chef-workstation/embedded/bin")
46
+ allow(ChefCLI::Helpers).to receive(:omnibus_env).and_return(
47
+ "PATH" => expected_PATH.flatten.uniq.join(File::PATH_SEPARATOR),
48
+ "GEM_ROOT" => expected_GEM_ROOT,
49
+ "GEM_HOME" => expected_GEM_HOME,
50
+ "GEM_PATH" => expected_GEM_PATH
51
+ )
52
+ end
53
+ end
54
+
55
+ context "on windows" do
56
+ let(:ruby_path) { "c:/opscode/chef-workstation/embedded/bin/ruby.exe" }
57
+ let(:user_bin_dir) { File.expand_path(File.join(Gem.user_dir, "bin")) }
58
+ let(:omnibus_embedded_bin_dir) { "c:/opscode/chef-workstation/embedded/bin" }
59
+ let(:omnibus_bin_dir) { "c:/opscode/chef-workstation/bin" }
60
+ let(:expected_GEM_ROOT) { Gem.default_dir }
61
+ let(:expected_GEM_HOME) { Gem.user_dir }
62
+ let(:expected_GEM_PATH) { Gem.path.join(File::PATH_SEPARATOR) }
63
+ let(:omnibus_root) { "c:/opscode/chef-workstation" }
64
+ let(:expected_PATH) { [ omnibus_bin_dir, user_bin_dir, omnibus_embedded_bin_dir, ENV["PATH"].split(File::PATH_SEPARATOR) ] }
65
+
66
+ before do
67
+ allow(ChefCLI::Helpers).to receive(:expected_omnibus_root).and_return(ruby_path)
68
+ allow(ChefCLI::Helpers).to receive(:omnibus_install?).and_return(true)
69
+ allow(Chef::Platform).to receive(:windows?).and_return(true)
70
+ end
71
+
72
+ it "#omnibus_env path" do
73
+ allow(ChefCLI::Helpers).to receive(:omnibus_bin_dir).and_return("c:/opscode/chef-workstation/bin")
74
+ allow(ChefCLI::Helpers).to receive(:omnibus_embedded_bin_dir).and_return("c:/opscode/chef-workstation/embedded/bin")
75
+ allow(ChefCLI::Helpers).to receive(:omnibus_env).and_return(
76
+ "PATH" => expected_PATH.flatten.uniq.join(File::PATH_SEPARATOR),
77
+ "GEM_ROOT" => expected_GEM_ROOT,
78
+ "GEM_HOME" => expected_GEM_HOME,
79
+ "GEM_PATH" => expected_GEM_PATH
80
+ )
81
+ end
82
+ end
83
+ end
84
+
85
+ context "when not installed via omnibus" do
86
+
87
+ before do
88
+ allow(ChefCLI::Helpers).to receive(:omnibus_install?).and_return false
89
+ end
90
+ let(:ruby_path) { "/Users/bog/.lots_o_rubies/2.1.2/bin/ruby" }
91
+ let(:expected_root_path) { "/Users/bog/.lots_o_rubies" }
92
+
93
+ before do
94
+ allow(File).to receive(:exist?).with(expected_root_path).and_return(false)
95
+
96
+ %i{
97
+ omnibus_root
98
+ omnibus_bin_dir
99
+ omnibus_embedded_bin_dir
100
+ }.each do |method_name|
101
+ allow(ChefCLI::Helpers).to receive(method_name).and_raise(ChefCLI::OmnibusInstallNotFound.new)
102
+ end
103
+ end
104
+
105
+ it "skips the sanity check without error" do
106
+
107
+ end
108
+
109
+ end
110
+ end
111
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chef Software, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-04 00:00:00.000000000 Z
11
+ date: 2021-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-cli
@@ -529,6 +529,7 @@ files:
529
529
  - spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb
530
530
  - spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb
531
531
  - spec/unit/generator_spec.rb
532
+ - spec/unit/helpers_spec.rb
532
533
  - spec/unit/kitchen/provisioner/chef_zero_capture_spec.rb
533
534
  - spec/unit/pager_spec.rb
534
535
  - spec/unit/policyfile/artifactory_cookbook_source_spec.rb
@@ -744,6 +745,7 @@ test_files:
744
745
  - spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb
745
746
  - spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb
746
747
  - spec/unit/generator_spec.rb
748
+ - spec/unit/helpers_spec.rb
747
749
  - spec/unit/kitchen/provisioner/chef_zero_capture_spec.rb
748
750
  - spec/unit/pager_spec.rb
749
751
  - spec/unit/policyfile/artifactory_cookbook_source_spec.rb