Don't query AUR for each package dammit

This commit is contained in:
Jack L. Frost 2015-09-25 17:56:23 +03:00
parent 351a03c515
commit 0b62cf2bc4
1 changed files with 22 additions and 11 deletions

33
prm
View File

@ -66,25 +66,26 @@ aur.info() {
aur.get_updates() {
declare -a foreign_packages
declare p_aur_info p_localver p_aur_version
declare p_aur_info p_localver p_aur_version aur_api_multireq aur_api_data
read -d '' -r -a foreign_packages < <( pacman -Qqm )
for p in "${foreign_packages[@]}"; do
unset p_aur_info
read -r p_aur_info < <( aur.info "$p" )
aur_api_multireq+="&arg\[\]=$p"
done
if [[ "$p_aur_info" ]]; then
read -r p_aur_version < <(
jshon -e results -e Version -u <<< "$p_aur_info"
)
aur_api_data=$( curl "${cfg_curl_opts[@]}" "${cfg_aur_api}?type=multiinfo${aur_api_multireq}" )
read -r _ p_localver < <( pacman -Q "$p" )
aur_api_data_length=$( jshon -e results -l <<< "$aur_api_data" )
(( aur_api_data_length-- ))
for (( n=0; n<=aur_api_data_length; n++ )); do
read -r n_name < <( jshon -e results -e "$n" -e Name -u <<< "$aur_api_data")
read -r n_version < <( jshon -e results -e "$n" -e Version -u <<< "$aur_api_data" )
read -r l_name l_version < <( pacman -Q "$n_name" )
if (( $(vercmp "$p_aur_version" "$p_localver") )); then
printf '%s\n' "$p"
fi
if (( $(vercmp "$n_version" "$l_version") )); then
printf '%s\n' "$n_name"
fi
done
}
@ -275,6 +276,11 @@ main() {
case "$action" in
(get)
[[ "$package" ]] || {
usage
return 1
}
[[ -d "$cfg_workdir" ]] || {
mkdir -p "$cfg_workdir" || {
err "Can't create workdir: %s\n" "$cfg_workdir"
@ -315,6 +321,11 @@ main() {
;;
(search)
[[ "$package" ]] || {
usage
return 1
}
if (( flag_search_aur )); then
aur.search "$package" || {
err "No packages found\n"