
xrc:mod:lib     gpg     key/ls  key/id  key/show

___x_cmd_gpg_key(){
    [ $# -gt 0 ]    ||      set -- ls

    local op="$1";  shift
    case "$op" in
        -h|--help)          ___x_cmd help -m gpg key    "$@"    ;;

        g|gen)              ___x_cmd_gpg_key_generate   "$@"    ;;

        ls|id|edit|export|send|show|\
        receive|search|refresh|import)
                            ___x_cmd_gpg_key_"$op"       "$@"   ;;
        rm|delete)          ;;
    esac
}

___x_cmd_gpg_key_generate(){
    # More configuration items: gpg --full-generate-key
    ___x_cmd_gpg___exec --gen-key       "$@"
}

___x_cmd_gpg_key_edit(){
    ___x_cmd_gpg___exec --edit-key      "$@"
}

___x_cmd_gpg_key_export(){
    ___x_cmd_gpg___exec --export        "$@"  # Might need options like --armor
}

___x_cmd_gpg_key_send(){
    #  This one is more complex, needs keyserver info
    local keyserver="${1:?Keyserver URL required}"; shift
    ___x_cmd_gpg___exec --send-keys     "$@" "$keyserver"
}

___x_cmd_gpg_key_receive(){
    #  This one is more complex, needs keyserver info
    local keyserver="${1:?Keyserver URL required}"; shift
    ___x_cmd_gpg___exec --recv-keys     "$@" "$keyserver"
}

___x_cmd_gpg_key_search(){
    #  This one is more complex, needs keyserver info
    local keyserver="${1:?Keyserver URL required}"; shift
    ___x_cmd_gpg___exec --search-keys   "$@" "$keyserver"
}

___x_cmd_gpg_key_refresh(){
    #  This one is more complex, needs keyserver info
    local keyserver="${1:?Keyserver URL required}"; shift
    ___x_cmd_gpg___exec --refresh-keys  "$@" "$keyserver"
}

___x_cmd_gpg_key_import(){
    ___x_cmd_gpg___exec --import        "$@"
}
