# shellcheck shell=dash

___x_cmd_hub_keypair_ls(){
    local X_help_cmd='___x_cmd_hub___help keypair ls'
    help:arg:parse

    while [ $# -gt 0 ]; do
        case "$1" in
            --remote) shift ;    ___x_cmd_hub_keypair_ls_remote "$@" ; return ;;
            *) break ;;
        esac
    done

    local x_=; ___x_cmd_hub_u_userdir_ me || return 1
    ___x_cmd mkdirp "$x_/keypair"
    local keypair_dir; keypair_dir="$x_/keypair" || return 1
    local name=; local keytype=
    find "$keypair_dir" | grep '\.pem$' | while read -r file; do
        [ -f "$file" ] || continue
        name="${file##*/}"
        name="${name%.*}"
        keytype="${name##*_}"
        name="${name%_*}"
        printf "%s\n" "$keytype,$name,$(date -r "$file" "+%Y-%m-%d %H:%M:%S")"
    done | \
        ___x_cmd csv header --add Type Name CreatedAt | \
        ___x_cmd_hub_u_st_tab - 10 100%
}

___x_cmd_hub_keypair_ls_remote(){
    local resp; resp="$(___x_cmd_hub_u_curl get /api/v0/key)" || {
        ___x_cmd_hub_u_handle_resp false "Failed to get key list:"
        return 1
    }

    printf "%s" "$resp" | \
        ___x_cmd jo 2c                .type  .name .createdAt | \
        ___x_cmd csv header --add     Type   Name  CreatedAt  | \
        ___x_cmd_hub_u_st_tab  -      10    100%
}
