
___X_CMD_AUR_DATA="$___X_CMD_ROOT_DATA/aur/data.json.gz"

___x_cmd_aur_update(){
    ___x_cmd_aur_update___raw
}

___x_cmd_aur_update___ifneed(){
    if [ -f "$___X_CMD_AUR_DATA" ] && ___x_cmd fileage --in 15d "$___X_CMD_AUR_DATA"; then
        aur:debug "Cached existed and less than 15 day. -> $___X_CMD_AUR_DATA"
        return 0
    fi
    ___x_cmd_aur_update___raw
}

___x_cmd_aur_update___ifneed_pipe(){
    if [ -f "$___X_CMD_AUR_DATA" ] && ___x_cmd fileage --in 15d "$___X_CMD_AUR_DATA"; then
        ___x_cmd_cmds cat "$___X_CMD_AUR_DATA"
        return 0
    fi
    ___x_cmd_aur_update___raw --pipe
}

___x_cmd_aur_update___raw(){
    aur:info "Now preparing the data ..."

    local datafp_tmp="$___X_CMD_ROOT_TMP/aur/data.tmp.json.gz"

    ___x_cmd ensurefp "$datafp_tmp"

    if [ "$1" = --pipe ]; then
        ___x_cmd curl -sq https://aur.archlinux.org/packages-meta-v1.json.gz | ___x_cmd_cmds tee "$datafp_tmp" || return $?
    else
        ___x_cmd curl -q https://aur.archlinux.org/packages-meta-v1.json.gz >"$datafp_tmp" || return $?
    fi

    ___x_cmd ensurefp "$___X_CMD_AUR_DATA"
    ___x_cmd_cmds mv "$datafp_tmp" "$___X_CMD_AUR_DATA" || return $?

    # (
    #     ___x_cmd_cd0 "${datafp%/*}"
    #     ___x_cmd uz "$datafp"
    #     ___x_cmd cat packages-meta-v1.json
    # )
}
