diff options
author | e5ten <e5ten.arch@gmail.com> | 2019-04-21 17:02:55 -0400 |
---|---|---|
committer | e5ten <e5ten.arch@gmail.com> | 2019-05-03 14:02:41 -0400 |
commit | c50a90dcbfb4d93329ad5d0ca3a5ad81bdcd7c61 (patch) | |
tree | 27e170dc01fd87673a82b1490437474e624f97cb | |
parent | 3fc28e198f7f3696ab907588e459ded9e6653bd0 (diff) |
replace many uses of grep, clean some things up and change some syntax
-rwxr-xr-x | pacaur | 198 |
1 files changed, 99 insertions, 99 deletions
@@ -88,7 +88,7 @@ if ! type -p gettext >/dev/null; then fi # define vcs packages -vcs="(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" +vcs="-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" # # Functions @@ -160,7 +160,7 @@ UpgradeAur() { # add devel packages if [[ "$devel" ]]; then for i in "${allaurpkgs[@]}"; do - [[ "$i" =~ -$vcs ]] && aurpkgs+=("$i") + [[ "$i" =~ $vcs ]] && aurpkgs+=("$i") done fi @@ -190,7 +190,7 @@ IgnoreChecks() { checkaurpkgsAver=($(GetJson "$json" "Version")) checkaurpkgsQver=($(expac -Q '%v' "${checkaurpkgs[@]}")) for i in "${!checkaurpkgs[@]}"; do - [[ "${checkaurpkgs[$i]}" =~ -$vcs ]] && checkaurpkgsAver[$i]=$"latest" + [[ "${checkaurpkgs[$i]}" =~ $vcs ]] && checkaurpkgsAver[$i]=$"latest" done for i in "${!checkaurpkgs[@]}"; do unset isignored @@ -290,9 +290,9 @@ DepsSolver() { depsAood=($(GetJson "$json" "OutOfDate")) depsAmain=($(GetJson "$json" "Maintainer")) for i in "${!depsAname[@]}"; do - depsQver[$i]="$(expac -Qs '%v' "^${depsAname[$i]}$" | head -1)" - [[ ! "${depsQver[$i]}" ]] && depsQver[$i]="#" # avoid empty elements shift - [[ "${depsAname[$i]}" =~ -$vcs ]] && depsAver[$i]=$"latest" + read -rd' ' <<< "$(expac -Qs '%v' "^${depsAname[$i]}$")" depsQver[$i] + [[ "${depsQver[$i]}" ]] || depsQver[$i]="#" # avoid empty elements shift + [[ "${depsAname[$i]}" =~ $vcs ]] && depsAver[$i]=$"latest" done # no results check @@ -415,10 +415,10 @@ FindDepsAur() { unset vcsdepspkgs for i in "${!depspkgs[@]}"; do depspkgs[$i]="${depspkgs[$i]%%[><=]*}" - unset j && j="$(expac -Qs '%n %P' "^${depspkgs[$i]}$" | head -1 | grep -E "([^a-zA-Z0-9_@\.\+-]${depspkgs[$i]}|^${depspkgs[$i]})" | grep -E "(${depspkgs[$i]}[^a-zA-Z0-9\.\+-]|${depspkgs[$i]}$)" | awk '{print $1}')" + unset j && read -rd' ' <<< "$(expac -Qs '%n %P' "^${depspkgs[$i]}$")" j if [[ "$j" ]]; then depspkgs[$i]="$j" - [[ "$devel" && ! " ${ignoredpkgs[*]} " =~ " $j " && "$j" =~ -$vcs ]] && + [[ "$devel" && ! " ${ignoredpkgs[*]} " =~ " $j " && "$j" =~ $vcs ]] && vcsdepspkgs+=("$j") else foreignpkgs+=("${depspkgs[$i]}") @@ -590,8 +590,8 @@ FindDepsRepo() { # get non installed repo deps unset allrepodepspkgs repodepspkgstmp # no version check needed as all deps are binary - [[ "${repodeps[*]}" ]] && allrepodepspkgs=($(expac -S -1 '%E' "${repodeps[@]}")) - [[ "${allrepodepspkgs[*]}" ]] && \ + [[ "${repodeps[*]}" ]] && allrepodepspkgs=($(expac -S1 '%E' "${repodeps[@]}")) + [[ "${allrepodepspkgs[*]}" ]] && repodepspkgstmp=($("$pacmanbin" -T -- "${allrepodepspkgs[@]}" | sort -u)) # remove duplicate @@ -613,10 +613,10 @@ FindDepsRepoProvider() { # get non installed repo deps unset allproviderrepodepspkgs providerrepodepspkgstmp [[ "${providerspkgs[*]}" ]] && - allproviderrepodepspkgs=($(expac -S -1 '%E' "${providerspkgs[@]}")) + allproviderrepodepspkgs=($(expac -S1 '%E' "${providerspkgs[@]}")) # no version check needed as all deps are binary [[ "${allproviderrepodepspkgs[*]}" ]] && - providerrepodepspkgstmp=($("$pacmanbin" -- -T "${allproviderrepodepspkgs[@]}" | sort -u)) + providerrepodepspkgstmp=($("$pacmanbin" -T -- "${allproviderrepodepspkgs[@]}" | sort -u)) # remove duplicate [[ "${providerrepodepspkgstmp[*]}" ]] && @@ -645,12 +645,9 @@ IgnoreDepsChecks() { isignored=1 elif [[ "${ignoredgrps[*]}" ]]; then unset repodepspkgsSgrp repodepspkgsQgrp - repodepspkgsSgrp=($(expac -S -1 '%G' "$i")) - for j in "${repodepspkgsSgrp[@]}"; do - [[ " ${ignoredgrps[*]} " =~ " $j " ]] && isignored=1 - done + repodepspkgsSgrp=($(expac -S1 '%G' "$i")) repodepspkgsQgrp=($(expac -Q '%G' "$i")) - for j in "${repodepspkgsQgrp[@]}"; do + for j in "${repodepspkgsSgrp[@]}" "${repodepspkgsQgrp[@]}"; do [[ " ${ignoredgrps[*]} " =~ " $j " ]] && isignored=1 done fi @@ -673,11 +670,8 @@ IgnoreDepsChecks() { elif [[ "${ignoredgrps[*]}" ]]; then unset aurdepspkgsAgrp aurdepspkgsQgrp aurdepspkgsAgrp=($(GetJson "$json" "Groups" "$i")) - for j in "${aurdepspkgsAgrp[@]}"; do - [[ " ${ignoredgrps[*]} " =~ " $j " ]] && isignored=1 - done aurdepspkgsQgrp=($(expac -Q '%G' "$i")) - for j in "${aurdepspkgsQgrp[@]}"; do + for j in "${aurdepspkgsAgrp[@]}" "${aurdepspkgsQgrp[@]}"; do [[ " ${ignoredgrps[*]} " =~ " $j " ]] && isignored=1 done fi @@ -762,7 +756,7 @@ ProviderChecks() { if [[ ! "$noconfirm" && "${#providers[*]}" -gt 1 ]]; then Note "i" $"${colorW}There are ${#providers[@]} providers available for ${providersdeps[$i]}:${reset}" - expac -S -1 ' %!) %n (%r) ' "${providers[@]}" + expac -S1 ' %!) %n (%r) ' "${providers[@]}" nb=-1 providersnb="$(( "${#providers[@]}" -1 ))" # count from 0 @@ -807,10 +801,10 @@ ProviderChecks() { # get binary packages info if [[ "${repodepspkgs[*]}" ]]; then - repodepspkgs=($(expac -S -1 '%n' "${repodepspkgs[@]}" | sort -u)) - repodepsSver=($(expac -S -1 '%v' "${repodepspkgs[@]}")) + repodepspkgs=($(expac -S1 '%n' "${repodepspkgs[@]}" | sort -u)) + repodepsSver=($(expac -S1 '%v' "${repodepspkgs[@]}")) repodepsQver=($(expac -Q '%v' "${repodepspkgs[@]}")) - repodepsSrepo=($(expac -S -1 '%r/%n' "${repodepspkgs[@]}")) + repodepsSrepo=($(expac -S1 '%r/%n' "${repodepspkgs[@]}")) fi } @@ -850,8 +844,9 @@ ConflictChecks() { for j in "${aurAconflicts[@]}"; do unset k Aprovides - k="$(expac -Qs '%n %P' "^$i$" | head -1 | grep -E "([^a-zA-Z0-9_@\.\+-]$i|^$i)" | grep -E "(${i}[^a-zA-Z0-9\.\+-]|$i$)" | awk '{print $1}')" - [[ ! "$installpkg" && ! " ${aurdepspkgs[*]} " =~ " $j " ]] && continue # skip if downloading only + read -rd' ' <<< "$(expac -Qs '%n %P' "^$i$")" k + [[ ! "$installpkg" && ! " ${aurdepspkgs[*]} " =~ " $j " ]] && continue + # skip if downloading only [[ "$j" = "$k" || ! "$k" ]] && continue # skip if reinstalling or if no conflict exists Aprovides=("$j") @@ -860,14 +855,16 @@ ConflictChecks() { aurconflictingpkgs+=("$j" "$k") aurconflictingpkgsrm+=("$k") for l in "${!depsAname[@]}"; do - [[ " ${depsAname[$l]} " =~ "$k" ]] && depsQver[$l]="$(expac -Qs '%v' "^$k$" | head -1)" + [[ " ${depsAname[$l]} " =~ "$k" ]] && + read -rd' ' <<< "$(expac -Qs '%v' "^$k$")" depsQver[$l] done Aprovides+=($(GetJson "$json" "Provides" "$j")) # remove AUR versioning for l in "${!Aprovides[@]}"; do Aprovides[$l]="${Aprovides[$l]%%[><=]*}" done - [[ ! " ${Aprovides[*]} " =~ " $k " && ! " ${aurconflictingpkgsrm[*]} " =~ " $k " ]] && CheckRequires "$k" + [[ ! " ${Aprovides[*]} ${aurconflictingpkgsrm[*]} " =~ " $k " ]] && + CheckRequires "$k" break else Note "f" $"unresolvable package conflicts detected" @@ -885,7 +882,7 @@ ConflictChecks() { for l in "${!Aprovides[@]}"; do Aprovides[$l]="${Aprovides[$l]%%[><=]*}" done - [[ ! " ${Aprovides[*]} " =~ " $k " && ! " ${aurconflictingpkgsrm[*]} " =~ " $k " ]] && CheckRequires "$k" + [[ ! " ${Aprovides[*]} ${aurconflictingpkgsrm[*]} " =~ " $k " ]] && CheckRequires "$k" done done @@ -894,8 +891,8 @@ ConflictChecks() { # repo conflicts if [[ "${repodepspkgs[*]}" ]]; then repodepsprovides=("${repodepspkgs[@]}") - repodepsprovides+=($(expac -S -1 '%S' "${repodepspkgs[@]}")) # no versioning - repodepsconflicts=($(expac -S -1 '%H' "${repodepspkgs[@]}")) + repodepsprovides+=($(expac -S1 '%S' "${repodepspkgs[@]}")) # no versioning + repodepsconflicts=($(expac -S1 '%H' "${repodepspkgs[@]}")) # versioning check unset checkedrepodepsconflicts @@ -925,33 +922,31 @@ ConflictChecks() { for i in "${repoconflicts[@]}"; do unset Qprovides - repoSconflicts=($(expac -S -1 '%n %C %S' "${repodepspkgs[@]}" | grep -E "[^a-zA-Z0-9_@\.\+-]$i" | grep -E "(${i}[^a-zA-Z0-9\.\+-]|$i$)" | awk '{print $1}')) - for j in "${repoSconflicts[@]}"; do - unset k && k="$(expac -Qs '%n %P' "^$i$" | head -1 | grep -E "([^a-zA-Z0-9_@\.\+-]$i|^$i)" | grep -E "(${i}[^a-zA-Z0-9\.\+-]|$i$)" | awk '{print $1}')" - [[ "$j" = "$k" || ! "$k" ]] && continue # skip when no conflict with repopkgs - - if [[ ! "$noconfirm" && ! " ${repoconflictingpkgs[*]} " =~ " $k " ]]; then - if ! Proceed "n" $"$j and $k are in conflict ($i). Remove $k?"; then - repoconflictingpkgs+=("$j" "$k") - repoconflictingpkgsrm+=("$k") - repoprovidersconflictingpkgs+=("$j") - Qprovides=($(expac -Ss '%S' "^$k$")) - [[ ! " ${Qprovides[*]} " =~ " $k " && ! " ${repoconflictingpkgsrm[*]} " =~ " $k " ]] && CheckRequires "$k" - break + unset j && read -rd' ' <<< "$(expac -Ss '%n %C %S' "^$i$")" j + unset k && read -rd' ' <<< "$(expac -Qs '%n %C %S' "^$i$")" k + [[ "$j" = "$k" || ! "$k" ]] && continue # skip when no conflict with repopkgs + if [[ ! "$noconfirm" && ! " ${repoconflictingpkgs[*]} " =~ " $k " ]]; then + if ! Proceed "n" $"$j and $k are in conflict ($i). Remove $k?"; then + repoconflictingpkgs+=("$j" "$k") + repoconflictingpkgsrm+=("$k") + repoprovidersconflictingpkgs+=("$j") + Qprovides=($(expac -Ss '%S' "^$k$")) + [[ ! " ${Qprovides[*]} ${repoconflictingpkgsrm[*]} " =~ " $k " ]] && + CheckRequires "$k" + break + else + Note "f" $"unresolvable package conflicts detected" + Note "f" $"failed to prepare transaction (conflicting dependencies)" + if [[ "$upgrade" ]]; then + Qrequires=($(expac -Q '%N' "$i")) + Note "e" $"$j and $k are in conflict (required by ${Qrequires[*]})" else - Note "f" $"unresolvable package conflicts detected" - Note "f" $"failed to prepare transaction (conflicting dependencies)" - if [[ "$upgrade" ]]; then - Qrequires=($(expac -Q '%N' "$i")) - Note "e" $"$j and $k are in conflict (required by ${Qrequires[*]})" - else - Note "e" $"$j and $k are in conflict" - fi + Note "e" $"$j and $k are in conflict" fi fi - Qprovides=($(expac -Ss '%S' "^$k$")) - [[ ! " ${Qprovides[*]} " =~ " $k " ]] && CheckRequires "$k" - done + fi + Qprovides=($(expac -Ss '%S' "^$k$")) + [[ ! " ${Qprovides[*]} " =~ " $k " ]] && CheckRequires "$k" done } @@ -966,7 +961,7 @@ ReinstallChecks() { [[ ! "${depsQver[$i]}" || "${depsQver[$i]}" = '#' ]] || [[ "$(vercmp "${depsAver[$i]}" "${depsQver[$i]}")" -gt 0 ]] && continue [[ ! $installpkg && ! " ${aurdepspkgs[*]} " =~ " ${depsAname[$i]} " ]] && continue - if [[ "${depsAname[$i]}" =~ -$vcs ]]; then + if [[ "${depsAname[$i]}" =~ $vcs ]]; then Note "w" $"${colorW}${depsAname[$i]}${reset} latest revision -- fetching" else if [[ ! $needed ]]; then @@ -987,7 +982,8 @@ OutofdateChecks() { local i # global depsAname depsAver depsAood for i in "${!depsAname[@]}"; do - [[ "${depsAood[$i]}" -gt 0 ]] && Note "w" $"${colorW}${depsAname[$i]}-${depsAver[$i]}${reset} has been flagged ${colorR}out of date${reset} on ${colorY}$(date -d "@${depsAood[$i]}" "+%c")${reset}" + [[ "${depsAood[$i]}" -gt 0 ]] && + Note "w" $"${colorW}${depsAname[$i]}-${depsAver[$i]}${reset} has been flagged ${colorR}out of date${reset} on ${colorY}$(date -d "@${depsAood[$i]}" "+%c")${reset}" done } @@ -995,7 +991,8 @@ OrphanChecks() { local i # global depsAname depsAver depsAmain for i in "${!depsAname[@]}"; do - [[ "${depsAmain[$i]}" == 'null' ]] &&Note "w" $"${colorW}${depsAname[$i]}-${depsAver[$i]}${reset} is ${colorR}orphaned${reset} in AUR" + [[ "${depsAmain[$i]}" = 'null' ]] && + Note "w" $"${colorW}${depsAname[$i]}-${depsAver[$i]}${reset} is ${colorR}orphaned${reset} in AUR" done } @@ -1006,8 +1003,8 @@ Prompt() { # global deps depsQver repodepspkgs repodepsSrepo repodepsQver repodepsSver # compute binary size if [[ "${repodepspkgs[*]}" ]]; then - binaryksize=($(expac -S -1 '%k' "${repodepspkgs[@]}")) - binarymsize=($(expac -S -1 '%m' "${repodepspkgs[@]}")) + binaryksize=($(expac -S1 '%k' "${repodepspkgs[@]}")) + binarymsize=($(expac -S1 '%m' "${repodepspkgs[@]}")) sumk=0 summ=0 for i in "${!repodepspkgs[@]}"; do @@ -1096,7 +1093,7 @@ DownloadPkgs() { # reset for i in "${basepkgs[@]}"; do - if [[ -d "$i" ]]; then + if [[ -d "$clonedir/$i" ]]; then git -C "$clonedir/$i" reset --hard HEAD -q # updated pkgver of vcs packages block pull [[ "$displaybuildfiles" = diff ]] && git -C "$clonedir/$i" rev-parse HEAD > "$clonedir/$i/.git/HEAD.prev" @@ -1104,33 +1101,29 @@ DownloadPkgs() { done # clone - if ! auracle -C "$clonedir" clone --quiet "$@"; then - Note "e" $"failed to retrieve packages" - fi + auracle -C "$clonedir" clone "$@" >/dev/null || Note "e" $"failed to retrieve packages" } EditPkgs() { local viewed i j erreditpkg # global cachedpkgs installscripts editor - diffcmd() { - git diff $2 --no-ext-diff <"$clonedir/$1/.git/HEAD.prev" -- . ':!\.SRCINFO' - } [[ "$noedit" ]] && return unset viewed for i in "$@"; do [[ " ${cachedpkgs[*]} " =~ " $i " ]] && continue - local prevcomm="$(<"$clonedir/$i/.git/HEAD.prev")" GetInstallScripts "$i" if [[ ! "$edit" ]]; then if [[ "$displaybuildfiles" = diff && -e "$clonedir/$i/.git/HEAD.prev" ]]; then + local prev="$(<"$clonedir/$i/.git/HEAD.prev")" # show diff - if ! git diff --quiet --no-ext-diff "$prevcomm" -- . ':!\.SRCINFO'; then + if git -C "$clonedir/$i" diff --quiet --no-ext-diff "$prev" -- . ':!\.SRCINFO'; then + Note "w" $"${colorW}$i${reset} build files are up-to-date -- skipping" + else if Proceed "y" $"View $i build files diff?"; then - git diff --no-ext-diff "$prevcomm" -- . ':!\.SRCINFO' || erreditpkg+=("$i") + git -C "$clonedir/$i" diff --no-ext-diff "$prev" -- . ':!\.SRCINFO' || + erreditpkg+=("$i") Note "i" $"${colorW}$i${reset} build files diff viewed"; viewed=1 fi - else - Note "w" $"${colorW}$i${reset} build files are up-to-date -- skipping" fi elif [[ ! "$displaybuildfiles" = none ]]; then # show pkgbuild @@ -1196,8 +1189,8 @@ EditPkgs() { MakePkgs() { local i j oldorphanpkgs neworphanpkgs orphanpkgs oldoptionalpkgs newoptionalpkgs optionalpkgs - local errinstall pkgsdepslist vcsclients vcschecked aurdevelpkgsAver aurdevelpkgsQver builtpkgs - local builtdepspkgs basepkgsupdate checkpkgsdepslist isaurdeps + local errinstall pkgsdepslist vcsclients vcschecked list aurdevelpkgsAver aurdevelpkgsQver + local builtpkgs builtdepspkgs basepkgsupdate checkpkgsdepslist isaurdeps makedeps # global deps basepkgs sudoloop pkgsbase pkgsdeps aurpkgs aurdepspkgs builtpkg errmakepkg json # global repoprovidersconflictingpkgs @@ -1237,7 +1230,7 @@ MakePkgs() { # cache check unset builtpkg - if [[ ! "${basepkgs[$i]}" =~ -$vcs ]]; then + if [[ ! "${basepkgs[$i]}" =~ $vcs ]]; then for j in "${pkgsdepslist[@]}"; do [[ "$PKGDEST" && ! "$rebuild" ]] && GetBuiltPkg "$j-$(GetJson "$json" "Version" "$j")" "$PKGDEST" @@ -1247,10 +1240,14 @@ MakePkgs() { # install vcs clients (checking pkgbase extension only does not take fetching specific # commit into account) unset vcsclients - vcsclients=($(GetJson "$json" "MakeDepends" "${basepkgs[$i]}" | grep -E "$vcs")) + makedeps=($(GetJson "$json" "MakeDepends" "${basepkgs[$i]}")) + for i in git subversion mercurial bzr cvs darcsl; do + [[ " ${makedeps[*]} " =~ " $i " ]] && vcsclients+=("$i") + done + unset makedeps for j in "${vcsclients[@]}"; do if [[ ! "${vcschecked[*]}" =~ "$j" ]]; then - [[ ! "$(expac -Qs '%n' "^$j$")" ]] && sudo "$pacmanbin" -S "$j" --asdeps --noconfirm + expac -Qs '' "^$j$" || sudo "$pacmanbin" -S "$j" --asdeps --noconfirm vcschecked+=("$j") fi done @@ -1298,21 +1295,23 @@ MakePkgs() { # main for i in "${!basepkgs[@]}"; do - # get split packages list pkgsdepslist=($(awk -F "," '{for (k=1;k<=NF;k++) print $k}' <<< "${pkgsdeps[$i]}")) cd "$clonedir/${basepkgs[$i]}" || exit 1 # retrieve updated version - aurdevelpkgsAver="$(makepkg --packagelist | awk -F "-" '{print $(NF-2)"-"$(NF-1)}' | - head -1)" + unset list && mapfile -t -d'-' list <<< "$(makepkg --packagelist)" + # map packagelist output to array 'list', using the -es from the file name as delimiters + # then we can take the version as the 3rd element from the end, the first being arch and + # pkgext, and the second being pkgrel + aurdevelpkgsAver="${list[(("${#list[@]}"-3))]}" # build devel if necessary only (supported protocols only) - if [[ "${basepkgs[$i]}" =~ -(bzr|git|hg|svn|daily.*|nightly.*)$ ]]; then + if [[ "${basepkgs[$i]}" =~ $vcs ]]; then # check split packages update unset basepkgsupdate checkpkgsdepslist for j in "${pkgsdepslist[@]}"; do - aurdevelpkgsQver="$(expac -Qs '%v' "^$j$" | head -1)" + read -rd' ' <<< "$(expac -Qs '%v' "^$j$")" aurdevelpkgsQver if [[ "$needed" && ! "$rebuild" && "$aurdevelpkgsQver" ]] && [[ "$(vercmp "$aurdevelpkgsQver" "$aurdevelpkgsAver")" -ge 0 ]]; then Note "w" $"${colorW}$j${reset} is up-to-date -- skipping" && continue @@ -1458,14 +1457,14 @@ CheckUpdates() { if [[ "$devel" ]]; then if [[ ! "$needed" ]]; then for i in "${foreignpkgs[@]}"; do - [[ "$i" =~ -$vcs ]]&& aurpkgsQood+=("$i") + [[ "$i" =~ $vcs ]]&& aurpkgsQood+=("$i") done else foreignpkgsbase=($(expac -Q '%n %e' "${foreignpkgs[@]}" | awk '{if ($2 == "(null)") print $1; else print $2}')) foreignpkgsnobase=($(expac -Q '%n' "${foreignpkgs[@]}")) for i in "${!foreignpkgsbase[@]}"; do - if [[ "${foreignpkgsbase[$i]}" =~ -$vcs ]]; then + if [[ "${foreignpkgsbase[$i]}" =~ $vcs ]]; then [[ ! -d "$clonedir/${foreignpkgsbase[$i]}" ]] && DownloadPkgs "${foreignpkgsbase[$i]}" &>/dev/null cd "$clonedir/${foreignpkgsbase[$i]}" || exit 1 @@ -1474,7 +1473,7 @@ CheckUpdates() { # retrieve updated version aurdevelpkgsAver="$(makepkg --packagelist | awk -F "-" '{print $(NF-2)"-"$(NF-1)}' | head -1)" - aurdevelpkgsQver="$(expac -Qs '%v' "^${foreignpkgsbase[$i]}$" | head -1)" + read -rd' ' <<< "$(expac -Qs '%v' "^${foreignpkgsbase[$i]}$")" aurdevelpkgsQver if [[ "$(vercmp "$aurdevelpkgsQver" "$aurdevelpkgsAver")" -ge 0 ]]; then continue else @@ -1493,7 +1492,7 @@ CheckUpdates() { aurpkgsAver=($(GetJson "$json" "Version")) aurpkgsQver=($(expac -Q '%v' "${aurpkgsAname[@]}")) for i in "${!aurpkgsAname[@]}"; do - if [[ "${aurpkgsAname[$i]}" =~ -$vcs ]]; then + if [[ "${aurpkgsAname[$i]}" =~ $vcs ]]; then [[ ! "$needed" ]] && aurpkgsAver[$i]=$"latest" || aurpkgsAver[$i]="${aurpkgsQoodAver[$i]}" fi done @@ -1625,13 +1624,14 @@ GetInstallScripts() { } GetBuiltPkg() { - local pkgext + local ext # global builtpkg - # check PKGEXT suffixe first, then default .xz suffixe for repository packages in pacman cache + # check PKGEXT suffixe first, then default .xz suffix for repository packages in pacman cache # and lastly all remaining suffixes in case PKGEXT is locally overridden - for pkgext in "$PKGEXT" .pkg.tar{.xz,,.gz,.bz2,.lzo,.lrz,.Z}; do - builtpkg="$2/$1-${CARCH}$pkgext" - [[ -f "$builtpkg" ]] && break || builtpkg="$2/$1-any$pkgext" + for ext in "$PKGEXT" .pkg.tar{.xz,,.gz,.bz2,.lzo,.lrz,.Z}; do + builtpkg="$2/$1-${CARCH}$ext" + [[ ! -f "$builtpkg" ]] && builtpkg="$2/$1-any$ext" + [[ -f "$builtpkg" ]] && break done [[ ! -f "$builtpkg" ]] && unset builtpkg } @@ -1671,8 +1671,7 @@ GetJson() { } CheckRequires() { - local Qrequires - Qrequires=($(expac -Q '%n %D' | grep -E " $*[\+]*[^a-zA-Z0-9_@\.\+-]+" | awk '{print $1}' | tr '\n' ' ')) + local Qrequires=($(expac -Q '%N')) if [[ "${Qrequires[*]}" ]]; then Note "f" $"failed to prepare transaction (could not satisfy dependencies)" Note "e" $"${Qrequires[@]}: requires $@" @@ -1720,7 +1719,7 @@ Proceed() { Note() { case "$1" in i) echo -e "${colorB}::${reset} $2";; # info - w) echo -e "${colorY}warning:${reset} $2";; # warn + w) echo -e "${colorY}warning:${reset} $2" >&2;; # warn f) echo -e "${colorR}error:${reset} $2" >&2;; # fail e) echo -e "${colorR}error:${reset} $2" >&2; # error exit 1;; @@ -1757,7 +1756,7 @@ DiffArr() { trap Cancel INT Cancel() { echo - rm -f "$tmpdir"/pacaur.{build,sudov}.lck + rm -f "${tmpdir:?}"/pacaur.{build,sudov}.lck exit } @@ -1770,7 +1769,7 @@ Usage() { printf "%s\n" $" general" printf "%s\n" $" -v, --version display version information" printf "%s\n" $" -h, --help display help information" - echo + printf '\n' printf "%s\n" $"options:" printf "%s\n" $" pacman extension - can be used with the -S, -Ss, -Si, -Sw, -Su, -Sc, -Scc operations" printf "%s\n" $" -a, --aur only search, build, install or clean target(s) from the AUR" @@ -1967,9 +1966,10 @@ case "$operation" in fi exit;; upgrades) CheckUpdates "${pkgs[@]}";; # upgrades (-Qu) handling - *) if [[ "${pkgs[*]}" || " ${pacmanarg[*]} " =~ ' -F ' && " ${pacmanarg[*]} " =~ ' -y ' ]]; then + *) if [[ " ${pacmanarg[*]} " =~ ' -F ' && " ${pacmanarg[*]} " =~ ' -y ' ]]; then sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" -- "${pkgs[@]}" - elif [[ " ${pacmanarg[*]} " =~ ' '-[DFQTglp]' ' && ! "${asdeps}${asexplicit}" ]]; then + elif [[ ! "${pkgs[*]}" ]] || + [[ " ${pacmanarg[*]} " =~ ' '-[DFQTglp]' ' && ! "${asdeps}${asexplicit}" ]]; then "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" -- "${pkgs[@]}" else sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" -- "${pkgs[@]}" |