summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authore5ten <e5ten.arch@gmail.com>2019-04-21 17:02:55 -0400
committere5ten <e5ten.arch@gmail.com>2019-05-03 14:02:41 -0400
commitc50a90dcbfb4d93329ad5d0ca3a5ad81bdcd7c61 (patch)
tree27e170dc01fd87673a82b1490437474e624f97cb
parent3fc28e198f7f3696ab907588e459ded9e6653bd0 (diff)
replace many uses of grep, clean some things up and change some syntax
-rwxr-xr-xpacaur198
1 files changed, 99 insertions, 99 deletions
diff --git a/pacaur b/pacaur
index 5e2f970..af90a27 100755
--- a/pacaur
+++ b/pacaur
@@ -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[@]}"