def self.list_commands(preferred_category=nil)
load_commands
category_desc = preferred_category ? preferred_category + " " : ''
msg "Available #{category_desc}subcommands: (for details, knife SUB-COMMAND --help)\n\n"
if preferred_category && subcommands_by_category.key?(preferred_category)
commands_to_show = {preferred_category => subcommands_by_category[preferred_category]}
else
commands_to_show = subcommands_by_category
end
commands_to_show.sort.each do |category, commands|
msg "** #{category.upcase} COMMANDS **"
commands.each do |command|
msg subcommands[command].banner if subcommands[command]
end
msg
end
end