summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2017-08-29 11:21:33 -0700
committerTim Smith <tsmith@chef.io>2018-01-22 09:01:42 -0800
commit24e7783d852778204c50b877a12a468b11c985a7 (patch)
treed169a5684129e8b8d25c054c51b94e41ab69ea94
parent3b6800b84eeb7bd8f84a748ac6734104fdac04b4 (diff)
downloadchef-24e7783d852778204c50b877a12a468b11c985a7.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.rb13
-rw-r--r--lib/chef/knife.rb2
-rw-r--r--spec/integration/knife/deps_spec.rb4
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