class ChefCLI::PolicyfileServices::ShowPolicy

def display_single_policy

def display_single_policy
  report.h1(policy_name)
  rev_id_by_group = policy_lister.revision_ids_by_group_for(policy_name)
  if rev_id_by_group.empty? || rev_id_by_group.all? { |_k, rev| rev.nil? }
    ui.err("No policies named '#{policy_name}' are associated with a policy group")
    ui.err("")
  elsif show_summary_diff?
    unique_rev_ids = rev_id_by_group.unique_revision_ids
    revision_info = policy_lister.revision_info_for(policy_name, unique_rev_ids)
    ljust_size = rev_id_by_group.max_group_name_length + 2
    cbs_with_differing_ids = revision_info.cbs_with_differing_ids
    rev_id_by_group.each do |group_name, rev_id|
      heading = "#{group_name}:".ljust(ljust_size) + shorten_rev_id(rev_id)
      report.h2(heading)
      differing_cbs_version_info = cbs_with_differing_ids.inject({}) do |cb_version_info, cb_name|
        version, identifier = revision_info.cb_info_for(rev_id, cb_name)
        cb_info_for_report =
          if !version.nil?
            "#{version} (#{shorten_rev_id(identifier)})"
          else
            "*NONE*"
          end
        cb_version_info[cb_name] = cb_info_for_report
        cb_version_info
      end
      report.table_list(differing_cbs_version_info)
    end
  else
    rev_ids_for_report = format_rev_ids_for_report(rev_id_by_group)
    report.table_list(rev_ids_for_report)
  end
  if show_orphans?
    orphans = policy_lister.orphaned_revisions(policy_name)
    unless orphans.empty?
      report.h2("Orphaned:")
      formatted_orphans = orphans.map { |id| shorten_rev_id(id) }
      report.list(formatted_orphans)
    end
  end
end