class Inspec::EnvPrinter::TemplateContext

def commands_for_thor_class(thor_class)

def commands_for_thor_class(thor_class)
  thor_class.all_commands.values.map { |c| c.usage.split.first }
end

def descript_line_for_command(c)

def descript_line_for_command(c)
  "#{c.usage.split.first}:#{Shellwords.escape(c.description)}"
end

def descript_lines_for_class(thor_class)

def descript_lines_for_class(thor_class)
  thor_class.all_commands.values.map { |c| descript_line_for_command(c) }
end

def get_bindings # rubocop:disable Style/AccessorMethodName

rubocop:disable Style/AccessorMethodName
def get_bindings # rubocop:disable Style/AccessorMethodName
  binding
end

def initialize(command_class)

def initialize(command_class)
  @command_class = command_class
end

def subcommands_with_commands

def subcommands_with_commands
  ret = {}
  @command_class.subcommand_classes.each do |k, v|
    ret[k] = commands_for_thor_class(v)
  end
  ret
end

def subcommands_with_commands_and_descriptions

def subcommands_with_commands_and_descriptions
  ret = {}
  @command_class.subcommand_classes.each do |k, v|
    ret[k] = descript_lines_for_class(v)
  end
  ret
end

def top_level_commands


is something that provides a Thor-like API
The following functions all assume that @command_class
def top_level_commands
  commands_for_thor_class(@command_class)
end

def top_level_commands_with_descriptions

def top_level_commands_with_descriptions
  descript_lines_for_class(@command_class)
end