53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
# File 'lib/chef/knife/cookbook_show.rb', line 53
def run
cookbook_name, cookbook_version, segment, filename = @name_args
cookbook = Chef::CookbookVersion.load(cookbook_name, cookbook_version) unless cookbook_version.nil?
case @name_args.length
when 4
node = {}
node[:fqdn] = config[:fqdn] if config.key?(:fqdn)
node[:platform] = config[:platform] if config.key?(:platform)
node[:platform_version] = config[:platform_version] if config.key?(:platform_version)
class << node
def attribute?(name)
key?(name)
end
end
manifest_entry = cookbook.preferred_manifest_record(node, segment, filename)
temp_file = rest.streaming_request(manifest_entry[:url])
temp_file.open if temp_file.closed?
pretty_print(temp_file.read)
when 3
if segment == "metadata"
output(cookbook.metadata)
else
output(cookbook.files_for(segment))
end
when 2
output(cookbook.display)
when 1
env = config[:environment]
api_endpoint = env ? "environments/#{env}/cookbooks/#{cookbook_name}" : "cookbooks/#{cookbook_name}"
output(format_cookbook_list_for_display(rest.get(api_endpoint)))
when 0
show_usage
ui.fatal("You must specify a cookbook name")
exit 1
end
end
|