
___x_cmd_gpg_sk_ls(){
    [ "$#" -gt 0 ] ||       set -- --app

    local op="$1"; shift
    case "$op" in
        --csv)              ___x_cmd_gpg_sk_ls___csv             ;;
        --tsv)              ___x_cmd_gpg_sk_ls___tsv             ;;
        --raw)              ___x_cmd_gpg_sk_ls___raw             ;;
        --app)              ___x_cmd_gpg_sk_ls___app             ;;
        -h|--help)          ___x_cmd help -m gpg key ls           ;;
    esac
}

___x_cmd_gpg_sk_ls___auto(){
    if ___x_cmd_is_stdout2tty; then     ___x_cmd_gpg_sk_ls___app
    else                                ___x_cmd_gpg_sk_ls___tsv
    fi
}

___x_cmd_gpg_sk_ls___tsv(){
    ___x_cmd_gpg_sk_ls___csv | ___x_cmd csv static_tab
}

___x_cmd_gpg_sk_ls___csv(){
    ___x_cmd_gpg_sk_ls___raw |  \
        ___x_cmd_cmds awk       \
            -f "$___X_CMD_ROOT_MOD/gpg/lib/awk/sk.parse.awk"
}

___x_cmd_gpg_sk_ls___raw(){
    LANG=en ___x_cmd_gpg___exec     \
        --list-secret-keys          \
        --keyid-format LONG
}

___x_cmd_gpg_sk_ls___app(){
    gpg:info "Ctrl-D to exit. Ctrl-C to interrupt."
    local ___X_CMD_CSV_APP_SHBIN_CODE=
    local ___X_CMD_CSV_APP_DATA_i=""
    local ___X_CMD_CSV_APP_DATA_keyid=""
    local ___X_CMD_CSV_APP_DATA_short_keyid=""
    local ___X_CMD_CSV_APP_DATA_uid=""
    local ___X_CMD_CSV_APP_DATA_expires=""
    local ___X_CMD_CSV_APP_DATA_use=""
    local ___X_CMD_CSV_APP_DATA_algo=""
    local ___X_CMD_CSV_APP_DATA_create=""
    ___X_CMD_CSV_APP_SHBIN_CODE="xrc gpg; " \
        ___x_cmd csv app --clear --return var \
            -- ___x_cmd_gpg_sk_ls___csv || return 1

    local keyid="$___X_CMD_CSV_APP_DATA_keyid"
    [ -n "$keyid" ] || return 0

    local id=
    ___x_cmd ui select id               \
        "Next for Key: ${keyid}"        \
        "x gpg --list-secret-keys --keyid-format LONG ${keyid}  # info"   \
        "x gpg sk  export --armor ${keyid}"     \
        "x gpg git setup          ${keyid}"     \
        "return 0"                      || return 1

    case "$id" in
        1)  x gpg --list-secret-keys --keyid-format LONG "${keyid}" ;;
        2)  x gpg sk  export --armor "${keyid} "             ;;
        3)  x gpg git setup  "${keyid}"                      ;;
        *)  return 0                                         ;;
    esac
}
