# shellcheck shell=dash

___x_cmd log init gpg

xrc:mod:lib     gpg     uid     key/_index  sk/_index   agent  git

___x_cmd_gpg___main(){
    [ "$#" -gt 0 ] ||   set -- --help

    ___x_cmd_gpg_stty

    local op="$1"; shift
    case "$op" in
        encrypt|e|-e|--encrypt)     ___x_cmd_gpg___exec -e      "$@" ;;
        decrypt|d|-d|--decrypt)     ___x_cmd_gpg___exec -d      "$@" ;;

        uid|git)                    ___x_cmd_gpg_"$op"          "$@" ;;

        k|key)                      ___x_cmd_gpg_key            "$@" ;;

        sk|secretkey)               ___x_cmd_gpg_sk             "$@" ;;

        stty)                       ___x_cmd_gpg_stty ;;

        -h|--help)                  ___x_cmd help -m gpg        "$@" ;;
        --|--exec)                  ___x_cmd_gpg___exec         "$@" ;;
        *)                          ___x_cmd_gpg___exec "$op"   "$@" ;;
    esac
}

___x_cmd_gpg_stty(){
    [ -n "$GPG_TTY" ] || export GPG_TTY="$(tty)"
}

___x_cmd_gpg_sa(){
    :
}

___x_cmd_gpg___exec(){
    # TODO: It still cannot works find ...
    [ -n "$GPG_TTY" ] || export GPG_TTY="$(tty)"

    if ___x_cmd_hascmd gpg; then
        ___x_cmd_cmds               gpg "$@"
    else
        ___x_cmd pixi exec -s gnupg gpg "$@"
    fi
}
