function cmd::identity::_show() {
  local name=""
  while [[ $# -gt 0 ]]; do
    case "$1" in
      --name) name="$2"; shift 2 ;;
      --help) cmd::identity::help; return ;;
      *) log::error "Unknown flag: $1"; return 1 ;;
    esac
  done

  [[ -z "$name" ]] && { log::error "Missing required flag: --name"; return 1; }
  identity::require_exists "$name" || return 1

  local data peer_count="0"
  data=$(identity::show_data "$name")

  while IFS='|' read -r key val type_val index_val; do
    case "$key" in
      name)
        peer_count=$(echo "$data" | grep '^peer_count|' | cut -d'|' -f2)
        ui::identity::detail_name "$val" "$peer_count"
        ;;
      peer_count) ;; # consumed above
      device)
        local status=""
        status=$(cmd::identity::_device_status "$val")
        ui::identity::device_row "$val" "$type_val" "$index_val" "$status"
        ;;
    esac
  done <<< "$data"

  echo ""
}