diff options
author | Tim Smith <tsmith@chef.io> | 2017-08-29 11:21:33 -0700 |
---|---|---|
committer | Tim Smith <tsmith@chef.io> | 2018-01-22 09:01:42 -0800 |
commit | 24e7783d852778204c50b877a12a468b11c985a7 (patch) | |
tree | d169a5684129e8b8d25c054c51b94e41ab69ea94 | |
parent | 3b6800b84eeb7bd8f84a748ac6734104fdac04b4 (diff) | |
download | chef-knife_rb.tar.gz |
Link to the knife.rb docs when the knife.rb file is missingknife_rb
This is a pretty common first error message to experience with Chef. Let's point the users to a helpful location so they can quickly get up and running. Add some YARD comments while I was in the config class
Signed-off-by: Tim Smith <tsmith@chef.io>
-rw-r--r-- | chef-config/lib/chef-config/config.rb | 13 | ||||
-rw-r--r-- | lib/chef/knife.rb | 2 | ||||
-rw-r--r-- | spec/integration/knife/deps_spec.rb | 4 |
3 files changed, 15 insertions, 4 deletions
diff --git a/chef-config/lib/chef-config/config.rb b/chef-config/lib/chef-config/config.rb index 4855533266..d5badcc58f 100644 --- a/chef-config/lib/chef-config/config.rb +++ b/chef-config/lib/chef-config/config.rb @@ -52,6 +52,12 @@ module ChefConfig configuration.inspect end + # given a *nix style config path return the platform specific path + # to that same config file + # @example client.pem path on Windows + # platform_specific_path("/etc/chef/client.pem") #=> "C:\\chef\\client.pem" + # @param path [String] The unix path to convert to a platform specific path + # @return [String] a platform specific path def self.platform_specific_path(path) path = PathHelper.cleanpath(path) if ChefConfig.windows? @@ -66,6 +72,11 @@ module ChefConfig path end + # the drive where Chef is installed on a windows host. This is determined + # either by the drive containing the current file or by the SYSTEMDRIVE ENV + # variable + # + # @return [String] the drive letter def self.windows_installation_drive if ChefConfig.windows? drive = File.expand_path(__FILE__).split("/", 2)[0] @@ -249,7 +260,7 @@ module ChefConfig # Defaults to <chef_repo_path>/policies. default(:policy_path) { derive_path_from_chef_repo_path("policies") } - # Turn on "path sanity" by default. See also: http://wiki.opscode.com/display/chef/User+Environment+PATH+Sanity + # Turn on "path sanity" by default. default :enforce_path_sanity, false # Formatted Chef Client output is a beta feature, disabled by default: diff --git a/lib/chef/knife.rb b/lib/chef/knife.rb index 663649f32f..2853bf65dd 100644 --- a/lib/chef/knife.rb +++ b/lib/chef/knife.rb @@ -182,7 +182,7 @@ class Chef config_loader.profile = profile config_loader.load - ui.warn("No knife configuration file found") if config_loader.no_config_found? + ui.warn("No knife configuration file found. See https://docs.chef.io/config_rb_knife.html for details.") if config_loader.no_config_found? config_loader rescue Exceptions::ConfigurationError => e diff --git a/spec/integration/knife/deps_spec.rb b/spec/integration/knife/deps_spec.rb index 40ec411780..3f200396ba 100644 --- a/spec/integration/knife/deps_spec.rb +++ b/spec/integration/knife/deps_spec.rb @@ -242,7 +242,7 @@ EOM it "knife deps --tree prints each once" do knife("deps --tree /roles/foo.json /roles/self.json") do expect(stdout).to eq("/roles/foo.json\n /roles/bar.json\n /roles/baz.json\n /roles/foo.json\n/roles/self.json\n /roles/self.json\n") - expect(stderr).to eq("WARNING: No knife configuration file found\n") + expect(stderr).to eq("WARNING: No knife configuration file found. See https://docs.chef.io/config_rb_knife.html for details.\n") end end end @@ -580,7 +580,7 @@ EOM it "knife deps --tree prints each once" do knife("deps --remote --tree /roles/foo.json /roles/self.json") do expect(stdout).to eq("/roles/foo.json\n /roles/bar.json\n /roles/baz.json\n /roles/foo.json\n/roles/self.json\n /roles/self.json\n") - expect(stderr).to eq("WARNING: No knife configuration file found\n") + expect(stderr).to eq("WARNING: No knife configuration file found. See https://docs.chef.io/config_rb_knife.html for details.\n") end end end |