summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEthan Sommer <e5ten.arch@gmail.com>2019-08-23 14:05:24 -0400
committerEthan Sommer <e5ten.arch@gmail.com>2019-08-23 14:05:38 -0400
commitceb16a7eaff1c733b4896c72503e2038236463dd (patch)
tree85d7063711e6f787c12cd76939737186a6d8762e
parentaa027200c6472cf73ff7868a5cbce535706cf35e (diff)
replace uses of array=($(command)) where word splitting is not needed with mapfile
-rwxr-xr-xpacaur162
1 files changed, 82 insertions, 80 deletions
diff --git a/pacaur b/pacaur
index 9bef38a..d375065 100755
--- a/pacaur
+++ b/pacaur
@@ -20,7 +20,7 @@ declare -r version='4.8.6'
aur=0 asdeps=0 asexplicit=0 checkdeps=0 cleancache=0 ccount=0 color='' dcount=0
devel=0 downloadonly=0 help=0 info=0 installpkg=0 native=0 needed=0 noconfirm=0
nodeps=0 noedit=0 noop=0 operation='' pac=0 pace=0 pacQ=0 pacS=0 rebuild=0
-refresh=0 repo=0 search=0 upgrade=0 ver=0
+refresh=0 repo=0 search=0 upgrade=0 ver=0 QUIET=0
pacmanarg=() pacopts=() auropts=() makeopts=()
@@ -113,7 +113,7 @@ ClassifyPkgs() {
if ((! repo && ! aur)); then
noaurpkgs=()
for i in "${pkgs[@]}"; do
- if [[ "${i}" = aur/* ]]; then
+ if [[ "${i}" = 'aur/'* ]]; then
aurpkgs+=("${i:4}") # search aur/pkgs in AUR
continue
fi
@@ -150,7 +150,7 @@ UpgradeAur() {
local foreignpkgs allaurpkgs aurforeignpkgs i
# global aurpkgs
info $"%sStarting AUR upgrade...%s" "${colorW}" "${reset}"
- foreignpkgs=($("${pacmanbin}" -Qmq))
+ mapfile -t foreignpkgs < <("${pacmanbin}" -Qmq)
SetInfo "${foreignpkgs[@]}"
allaurpkgs=($(GetInfo "Name"))
@@ -201,7 +201,7 @@ IgnoreChecks() {
isignored=1
elif [[ "${ignoredgrps[*]}" ]]; then
checkaurpkgsgrp=($(GetInfo "Groups" "${checkaurpkgs[i]}"))
- checkaurpkgsgrp+=($(expac -Q '%G' "${checkaurpkgs[i]}"))
+ mapfile -tO "${#checkaurpkgsgrp[@]}" checkaurpkgsgrp < <(expac -Ql'\n' '%G' "${checkaurpkgs[i]}")
for j in "${checkaurpkgsgrp[@]}"; do
[[ " ${ignoredgrps[*]} " != *" ${j} "* ]] || isignored=1
done
@@ -267,7 +267,7 @@ DepsSolver() {
deps=("${aurpkgsnover[@]}")
- [[ "${foreignpkgs[*]}" ]] || foreignpkgs=($("${pacmanbin}" -Qmq))
+ [[ "${foreignpkgs[*]}" ]] || mapfile -t foreignpkgs < <("${pacmanbin}" -Qmq)
FindDepsAur "${aurpkgsnover[@]}"
# avoid possible duplicate
@@ -277,7 +277,8 @@ DepsSolver() {
# ensure correct dependency order
SetInfo "${deps[@]}"
SortDepsAur "${aurpkgs[@]}"
- deps=($(tsort <<< "${tsortdeps[@]}")) || error $"dependency cycle detected" "${E_INSTALL_DEPS_FAILED}"
+ mapfile -t deps < <(tsort <<< "${tsortdeps[@]}" 2>/dev/null)
+ wait "$!" || error $"dependency cycle detected" "${E_INSTALL_DEPS_FAILED}"
# get AUR packages info
depsAname=($(GetInfo "Name"))
@@ -352,8 +353,8 @@ FindDepsAur() {
aurversionpkgsverdiff="$(vercmp "${aurversionpkgsaurver}" "${aurversionpkgsver}")"
# not found in AUR nor repo
- [[ ! "${aurversionpkgsaurver}" && ! " ${errdeps[*]} " = *" ${aurversionpkgs[i]} "* ]] &&
- errdeps+=("${aurversionpkgs[i]}") && continue
+ [[ "${aurversionpkgsaurver}" || " ${errdeps[*]} " = *" ${aurversionpkgs[i]} "* ]] ||
+ { errdeps+=("${aurversionpkgs[i]}"); continue; }
case "${aurversionpkgs[i]}" in
*">"*|*"<"*|*"="*)
@@ -408,12 +409,12 @@ FindDepsAur() {
depspkgs=("${depspkgs[@]%%[><=]*}")
# remove installed deps
if ((! devel)); then
- depspkgs=($("${pacmanbin}" -T -- "${depspkgs[@]}" | sort -u))
+ mapfile -t depspkgs < <("${pacmanbin}" -T -- "${depspkgs[@]}" | sort -u)
else
# check providers
unset vcsdepspkgs
for i in "${!depspkgs[@]}"; do
- unset j; read -rd' ' j < <(expac -Qs '%n %P' "^${depspkgs[i]}$")
+ read -rd' ' j < <(expac -Qs '%n %P' "^${depspkgs[i]}$")
if [[ "${j}" ]]; then
depspkgs[i]="${j}"
((devel)) && [[ " ${ignoredpkgs[*]} " != *" ${j} "* && "${j}" = *'-'${vcs} ]] &&
@@ -423,7 +424,7 @@ FindDepsAur() {
fi
done
# reorder devel
- depspkgs=($("${pacmanbin}" -T -- "${depspkgs[@]}" | sort -u))
+ mapfile -t depspkgs < <("${pacmanbin}" -T -- "${depspkgs[@]}" | sort -u)
mapfile -t depspkgs < <(CommArr 'depspkgs' 'vcsdepspkgs' '-3')
fi
@@ -532,7 +533,7 @@ FindDepsAurError() {
done
[[ "${currenterrdep[*]}" ]] || currenterrdep="${tsorterrdeps[0]}"
- if [[ ! " ${aurpkgs[*]} " = *" ${nexterrdep} "* ]]; then
+ if [[ " ${aurpkgs[*]} " != *" ${nexterrdep} "* ]]; then
nextallerrdeps=($(GetInfo "Depends" "${nexterrdep}"))
nextallerrdeps+=($(GetInfo "MakeDepends" "${nexterrdep}"))
((checkdeps)) && nextallerrdeps+=($(GetInfo "CheckDepends" "${nexterrdep}"))
@@ -572,13 +573,14 @@ FindDepsRepo() {
# get non installed binary deps
unset allrepodepspkgs repodepspkgstmp
# no version check needed as all deps are repo deps
- [[ "${repodeps[*]}" ]] && allrepodepspkgs=($(expac -S1 '%E' "${repodeps[@]}"))
- [[ "${allrepodepspkgs[*]}" ]] && repodepspkgstmp=($("${pacmanbin}" -T -- "${allrepodepspkgs[@]}" | sort -u))
+ [[ ! "${repodeps[*]}" ]] || mapfile -t allrepodepspkgs < <(expac -S1l'\n' '%E' "${repodeps[@]}")
+ [[ ! "${allrepodepspkgs[*]}" ]] ||
+ mapfile -t repodepspkgstmp < <("${pacmanbin}" -T -- "${allrepodepspkgs[@]}" | sort -u)
# remove duplicate
- [[ "${repodepspkgstmp[*]}" ]] && mapfile -t repodepspkgstmp < <(CommArr 'repodepspkgs'{,'tmp'} '-13')
- [[ "${repodepspkgstmp[*]}" ]] && repodepspkgs+=("${repodepspkgstmp[@]}") &&
- repodeps=("${repodepspkgstmp[@]}") && FindDepsRepo "${repodeps[@]}"
+ [[ ! "${repodepspkgstmp[*]}" ]] || mapfile -t repodepspkgstmp < <(CommArr 'repodepspkgs'{,'tmp'} '-13')
+ [[ ! "${repodepspkgstmp[*]}" ]] || { repodepspkgs+=("${repodepspkgstmp[@]}")
+ repodeps=("${repodepspkgstmp[@]}"); FindDepsRepo "${repodeps[@]}"; }
}
FindDepsRepoProvider() {
@@ -591,17 +593,18 @@ FindDepsRepoProvider() {
# get non installed repo deps
unset allproviderrepodepspkgs providerrepodepspkgstmp
- [[ "${providerspkgs[*]}" ]] && allproviderrepodepspkgs=($(expac -S1 '%E' "${providerspkgs[@]}"))
+ [[ ! "${providerspkgs[*]}" ]] ||
+ mapfile -t allproviderrepodepspkgs < <(expac -S1l'\n' '%E' "${providerspkgs[@]}")
# no version check needed as all deps are binary
[[ "${allproviderrepodepspkgs[*]}" ]] &&
- providerrepodepspkgstmp=($("${pacmanbin}" -T -- "${allproviderrepodepspkgs[@]}" | sort -u))
+ mapfile -t providerrepodepspkgstmp < <("${pacmanbin}" -T -- "${allproviderrepodepspkgs[@]}" | sort -u)
# remove duplicate
[[ "${providerrepodepspkgstmp[*]}" ]] &&
mapfile -t providerrepodepspkgstmp < <(CommArr 'repodepspkgs' 'providerrepodepspkgstmp' '-13')
- [[ "${providerrepodepspkgstmp[*]}" ]] && repodepspkgs+=("${providerrepodepspkgstmp[@]}") &&
- providerspkgs=("${providerrepodepspkgstmp[@]}") && FindDepsRepoProvider "${providerspkgs[@]}"
+ [[ ! "${providerrepodepspkgstmp[*]}" ]] || { repodepspkgs+=("${providerrepodepspkgstmp[@]}")
+ providerspkgs=("${providerrepodepspkgstmp[@]}"); FindDepsRepoProvider "${providerspkgs[@]}"; }
}
IgnoreDepsChecks() {
@@ -619,8 +622,8 @@ IgnoreDepsChecks() {
isignored=1
elif [[ "${ignoredgrps[*]}" ]]; then
unset repodepspkgsSgrp repodepspkgsQgrp
- repodepspkgsgrp=($(expac -S1 '%G' "${i}"))
- repodepspkgsgrp+=($(expac -Q '%G' "${i}"))
+ mapfile -t repodepspkgsgrp < <(expac -S1l'\n' '%G' "${i}")
+ mapfile -tO "${#repodepspkgsgrp[@]}" repodepspkgsgrp < <(expac -Ql'\n' '%G' "${i}")
for j in "${repodepspkgsgrp[@]}"; do
[[ " ${ignoredgrps[*]} " = *" ${j} "* ]] && isignored=1
done
@@ -644,7 +647,7 @@ IgnoreDepsChecks() {
elif [[ "${ignoredgrps[*]}" ]]; then
unset aurdepspkgsgrp
aurdepspkgsgrp=($(GetInfo "Groups" "${i}"))
- aurdepspkgsgrp+=($(expac -Q '%G' "${i}"))
+ mapfile -tO "${#aurdepspkgsgrp[@]}" aurdepspkgsgrp < <(expac -Ql'\n' '%G' "${i}")
for j in "${aurdepspkgsgrp[@]}"; do
[[ " ${ignoredgrps[*]} " = *" ${j} "* ]] && isignored=1
done
@@ -673,19 +676,19 @@ ProviderChecks() {
[[ "${repodepspkgs[*]}" ]] || return
# filter directly provided deps
- noprovidersdeps=($(expac -S1 '%n' "${repodepspkgs[@]}"))
+ mapfile -t noprovidersdeps < <(expac -S1 '%n' "${repodepspkgs[@]}")
mapfile -t providersdeps < <(CommArr 'noprovidersdeps' 'repodepspkgs' '-13')
# remove installed providers
- providersdeps=($("${pacmanbin}" -T -- "${providersdeps[@]}" | sort -u))
+ mapfile -t providersdeps < <("${pacmanbin}" -T -- "${providersdeps[@]}" | sort -u)
for i in "${!providersdeps[@]}"; do
# check versioning
unset providersdepsname providersdepsver providersdepsSname providersdepsSver
providersdepsname="${providersdeps[i]%%[><=]*}"
providersdepsver="${providersdeps[i]##*[><=]}"
- providersdepsSname=($(expac -Ss '%n' "^${providersdepsname[i]}$"))
- providersdepsSver=($(expac -Ss '%v' "^${providersdepsname[i]}$"))
+ mapfile -t providersdepsSname < <(expac -Ss '%n' "^${providersdepsname[i]}$")
+ mapfile -t providersdepsSver < <(expac -Ss '%v' "^${providersdepsname[i]}$")
case "${providersdeps[i]}" in
*">"*|*"<"*|*"="*)
@@ -709,7 +712,7 @@ ProviderChecks() {
providersdeps[i]="${providersdeps[i]%%[><=]*}"
# list providers
- providers=($(expac -Ss '%n' "^${providersdeps[i]}$" | sort -u))
+ mapfile -t providers < <(expac -Ss '%n' "^${providersdeps[i]}$" | sort -u)
# filter out non matching versioned providers
[[ "${providersdepsnover[*]}" ]] && mapfile -t providers < <(CommArr 'providers'{'depsnover',} '-12')
@@ -725,7 +728,7 @@ ProviderChecks() {
if [[ "${providerspkgs[*]}" ]]; then
providerspkgs=($(printf '%s|' "${providerspkgs[@]}"))
providerspkgs=("${providerspkgs[@]%|}")
- provided+=($(expac -Ss '%S' "^(${providerspkgs[*]})$"))
+ mapfile -tO "${#provided[@]}" provided < <(expac -Ssl'\n' '%S' "^(${providerspkgs[*]})$")
[[ " ${provided[*]} " != *" ${providersdeps[i]} "* ]] || continue
fi
@@ -774,10 +777,10 @@ ProviderChecks() {
# get binary packages info
if [[ "${repodepspkgs[*]}" ]]; then
- repodepspkgs=($(expac -S1 '%n' "${repodepspkgs[@]}" | sort -u))
- repodepsSver=($(expac -S1 '%v' "${repodepspkgs[@]}"))
- repodepsQver=($(expac -Q '%v' "${repodepspkgs[@]}"))
- repodepsSrepo=($(expac -S1 '%r/%n' "${repodepspkgs[@]}"))
+ mapfile -t repodepspkgs < <(expac -S1 '%n' "${repodepspkgs[@]}" | sort -u)
+ mapfile -t repodepsSver < <(expac -S1 '%v' "${repodepspkgs[@]}")
+ mapfile -t repodepsQver < <(expac -Q '%v' "${repodepspkgs[@]}")
+ mapfile -t repodepsSrepo < <(expac -S1 '%r/%n' "${repodepspkgs[@]}")
fi
}
@@ -789,9 +792,9 @@ ConflictChecks() {
# global depsQver repodepspkgs repoconflictingpkgskeep repoconflictingpkgsrm repoprovidersconflictingpkgs
printf '%s\n' $"looking for inter-conflicts..."
- allQprovides=($(expac -Q '%n'))
- allQprovides+=($(expac -Q '%S')) # no versioning
- allQconflicts=($(expac -Q '%C'))
+ mapfile -t allQprovides < <(expac -Q '%n')
+ mapfile -tO "${#allQprovides[@]}" allQprovides < <(expac -Ql'\n' '%S') # no versioning
+ mapfile -t allQconflicts < <(expac -Ql'\n' '%C')
# AUR conflicts
Aprovides=("${depsAname[@]}")
@@ -812,13 +815,13 @@ ConflictChecks() {
done
for j in "${aurAconflicts[@]}"; do
- unset k Aprovides
- read -rd' ' < <(expac -Qs '%n %P' "^${i}$") k
- ((! installpkg)) && [[ ! " ${aurdepspkgs[*]} " = *" ${j} "* ]] && continue # download only
+ unset Aprovides
+ read -rd' ' k < <(expac -Qs '%n %P' "^${i}$")
+ ((! installpkg)) && [[ " ${aurdepspkgs[*]} " != *" ${j} "* ]] && continue # download only
[[ "${j}" = "${k}" || ! "${k}" ]] && continue # skip if reinstalling or if no conflict exists
Aprovides=("${j}")
- if ((! noconfirm)) && [[ ! " ${aurconflictingpkgs[*]} " = *" ${k} "* ]]; then
+ if ((! noconfirm)) && [[ " ${aurconflictingpkgs[*]} " != *" ${k} "* ]]; then
if ! Proceed "n" $"${j} and ${k} are in conflict (${i}). Remove ${k}?"; then
aurconflictingpkgs+=("${j}" "${k}")
aurconflictingpkgskeep+=("${j}")
@@ -830,13 +833,13 @@ ConflictChecks() {
Aprovides+=($(GetInfo "Provides" "${j}"))
# remove AUR versioning
Aprovides=("${Aprovides[@]%%[><=]*}")
- [[ ! " ${Aprovides[*]} ${aurconflictingpkgsrm[*]} " = *" ${k} "* ]] && CheckRequires "${k}"
+ [[ " ${Aprovides[*]} ${aurconflictingpkgsrm[*]} " = *" ${k} "* ]] || CheckRequires "${k}"
break
else
fail $"unresolvable package conflicts detected"
fail $"failed to prepare transaction (conflicting dependencies)"
if ((upgrade)); then
- Qrequires=($(expac -Q '%N' "${i}"))
+ mapfile -t Qrequires < <(expac -Ql'\n' '%N' "${i}")
error $"%s and %s are in conflict (required by %s)" "${j}" "${k}" "${Qrequires[*]}" \
"${E_INSTALL_DEPS_FAILED}"
else
@@ -847,7 +850,7 @@ ConflictChecks() {
Aprovides+=($(GetInfo "Provides" "${j}"))
# remove AUR versioning
Aprovides=("${Aprovides[@]%%[><=]*}")
- [[ ! " ${Aprovides[*]} ${aurconflictingpkgsrm[*]} " = *" ${k} "* ]] && CheckRequires "${k}"
+ [[ " ${Aprovides[*]} ${aurconflictingpkgsrm[*]} " = *" ${k} "* ]] || CheckRequires "${k}"
done
done
@@ -856,8 +859,9 @@ ConflictChecks() {
# repo conflicts
if [[ "${repodepspkgs[*]}" ]]; then
repodepsprovides=("${repodepspkgs[@]}")
- repodepsprovides+=($(expac -S1 '%S' "${repodepspkgs[@]}")) # no versioning
- repodepsconflicts=($(expac -S1 '%H' "${repodepspkgs[@]}"))
+ # no versioning
+ mapfile -tO "${#repodepsprovides[@]}" repodepsprovides < <(expac -S1l'\n' '%S' "${repodepspkgs[@]}")
+ mapfile -t repodepsconflicts < <(expac -S1l'\n' '%H' "${repodepspkgs[@]}")
# versioning check
unset checkedrepodepsconflicts
@@ -888,23 +892,23 @@ ConflictChecks() {
for i in "${repoconflicts[@]}"; do
unset Qprovides
- unset j && read -rd' ' < <(expac -Ss '%n %C %S' "^${i}$") j
- unset k && read -rd' ' < <(expac -Qs '%n %C %S' "^${i}$") k
+ read -rd' ' j < <(expac -Ss '%n %C %S' "^${i}$")
+ read -rd' ' k < <(expac -Qs '%n %C %S' "^${i}$")
[[ "${j}" = "${k}" || ! "${k}" ]] && continue # skip when no conflict with repopkgs
- if ((! noconfirm)) && [[ ! " ${repoconflictingpkgs[*]} " = *" ${k} "* ]]; then
+ if ((! noconfirm)) && [[ " ${repoconflictingpkgs[*]} " != *" ${k} "* ]]; then
if ! Proceed "n" $"${j} and ${k} are in conflict (${i}). Remove ${k}?"; then
repoconflictingpkgs+=("${j}" "${k}")
repoconflictingpkgskeep+=("${j}")
repoconflictingpkgsrm+=("${k}")
repoprovidersconflictingpkgs+=("${j}")
- Qprovides=($(expac -Ss '%S' "^${k}$"))
- [[ ! " ${Qprovides[*]} ${repoconflictingpkgsrm[*]} " = *" ${k} "* ]] && CheckRequires "${k}"
+ mapfile -t Qprovides < <(expac -Ssl'\n' '%S' "^${k}$")
+ [[ " ${Qprovides[*]} ${repoconflictingpkgsrm[*]} " = *" ${k} "* ]] || CheckRequires "${k}"
break
else
fail $"unresolvable package conflicts detected"
fail $"failed to prepare transaction (conflicting dependencies)"
if ((upgrade)); then
- Qrequires=($(expac -Q '%N' "${i}"))
+ mapfile -t Qrequires < <(expac -Ql'\n' '%N' "${i}")
error $"%s and %s are in conflict (required by %s)" "${j}" "${k}" "${Qrequires[*]}" \
"${E_INSTALL_DEPS_FAILED}"
else
@@ -912,8 +916,8 @@ ConflictChecks() {
fi
fi
fi
- Qprovides=($(expac -Ss '%S' "^${k}$"))
- [[ ! " ${Qprovides[*]} " = *" ${k} "* ]] && CheckRequires "${k}"
+ mapfile -t Qprovides < <(expac -Ssl'\n' '%S' "^${k}$")
+ [[ " ${Qprovides[*]} " = *" ${k} "* ]] || CheckRequires "${k}"
done
}
@@ -922,11 +926,10 @@ ReinstallChecks() {
# global aurpkgs aurdepspkgs deps aurconflictingpkgs depsAname depsQver depsAver depsAood depsAmain
depsAtmp=("${depsAname[@]}")
for i in "${!depsAtmp[@]}"; do
- [[ ! " ${aurpkgs[*]} " = *" ${depsAname[i]} "* ]] ||
- [[ " ${aurconflictingpkgs[*]} " = *" ${depsAname[i]} "* ]] && continue
- [[ ! "${depsQver[i]}" || "${depsQver[i]}" = '%' ]] ||
- [[ "$(vercmp "${depsAver[i]}" "${depsQver[i]}")" -gt 0 ]] && continue
- ((! installpkg)) && [[ ! " ${aurdepspkgs[*]} " = *" ${depsAname[i]} "* ]] && continue
+ [[ " ${aurpkgs[*]} " = *" ${depsAname[i]} "* &&
+ " ${aurconflictingpkgs[*]} " != *" ${depsAname[i]} "* ]] || continue
+ [[ "${depsQver[i]}" != ?('%') && "$(vercmp "${depsAver[i]}" "${depsQver[i]}")" -le 0 ]] || continue
+ ((installpkg)) || [[ " ${aurdepspkgs[*]} " = *" ${depsAname[i]} "* ]] || continue
if [[ "${depsAname[i]}" = *'-'${vcs} ]]; then
warn $"%s latest revision -- fetching" "${colorW}${depsAname[i]}${reset}"
else
@@ -970,8 +973,8 @@ Prompt() {
# global deps depsQver repodepspkgs repodepsSrepo repodepsQver repodepsSver
# compute binary size
if [[ "${repodepspkgs[*]}" ]]; then
- binaryksize=($(expac -S1 '%k' "${repodepspkgs[@]}"))
- binarymsize=($(expac -S1 '%m' "${repodepspkgs[@]}"))
+ mapfile -t binaryksize < <(expac -S1 '%k' "${repodepspkgs[@]}")
+ mapfile -t binarymsize < <(expac -S1 '%m' "${repodepspkgs[@]}")
sumk=0
summ=0
for i in "${!repodepspkgs[@]}"; do
@@ -1169,8 +1172,8 @@ MakePkgs() {
EditPkgs "${basepkgs[@]}"
# current orphan and optional packages
- oldorphanpkgs=($("${pacmanbin}" -Qdtq))
- oldoptionalpkgs=($("${pacmanbin}" -Qdttq))
+ mapfile -t oldorphanpkgs < <("${pacmanbin}" -Qdtq)
+ mapfile -t oldoptionalpkgs < <("${pacmanbin}" -Qdttq)
mapfile -t oldoptionalpkgs < <(CommArr 'oldorphanpkgs' 'oldoptionalpkgs' '-13')
# initialize sudo
@@ -1204,7 +1207,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}-$(GetInfo "Version" "${j}")" "${PKGDEST}"
@@ -1369,7 +1372,7 @@ MakePkgs() {
# remove AUR deps
if ((! installpkg)); then
- [[ "${aurdepspkgs[*]}" ]] && aurdepspkgs=($(expac -Q '%n' "${aurdepspkgs[@]}"))
+ [[ "${aurdepspkgs[*]}" ]] && mapfile -t aurdepspkgs < <(expac -Q '%n' "${aurdepspkgs[@]}")
[[ "${aurdepspkgs[*]}" ]] && info $"Removing installed AUR dependencies..." &&
sudo "${pacmanbin}" -Rsn "${aurdepspkgs[@]}" --noconfirm
# re-add removed conflicting packages
@@ -1384,7 +1387,7 @@ MakePkgs() {
rm -f "${tmpdir:?}/pacaur.sudov.lck"
# new orphan and optional packages check
- orphanpkgs=($("${pacmanbin}" -Qdtq))
+ mapfile -t orphanpkgs < <("${pacmanbin}" -Qdtq)
mapfile -t neworphanpkgs < <(CommArr 'oldorphanpkgs' 'orphanpkgs' '-13')
for i in "${neworphanpkgs[@]}"; do
warn $"%s is now an %sorphan%s package" "${colorW}${i}${reset}" "${colorY}" "${reset}"
@@ -1408,7 +1411,7 @@ MakePkgs() {
CleanCache() {
local i cachepkgs foreignpkgs foreignpkgsbase
- cachedir=($(pacman-conf CacheDir))
+ mapfile -t cachedir < <(pacman-conf CacheDir)
[[ "${cachedir[*]}" ]] && cachedir=("${cachedir[@]%/}") && PKGDEST="${PKGDEST%/}"
if [[ "${PKGDEST}" && " ${cachedir[*]} " != *" ${PKGDEST} "* ]]; then
((ccount == 1)) && printf '\n%s\n %s\n' $"Packages to keep:" $"All locally installed packages"
@@ -1468,7 +1471,7 @@ CleanCache() {
if Proceed "y" $"Do you want to remove all uninstalled clones from AUR clone directory?"; then
printf '%s\n\n' $"removing uninstalled clones from AUR clone cache..."
for i in "${clonedir:?}/"*; do
- [[ -d "${i}" && ! " ${foreignpkgsbase[*]} " = *" ${i} "* ]] &&
+ [[ ! -d "${i}" || " ${foreignpkgsbase[*]} " = *" ${i} "* ]] ||
rm -rf "${clonedir:?}/${i}"
done
fi
@@ -1496,20 +1499,20 @@ CleanCache() {
GetIgnoredPkgs() {
# global ignoredpkgs
- ignoredpkgs+=($(pacman-conf IgnorePkg))
+ mapfile -tO "${#ignoredpkgs[@]}" ignoredpkgs < <(pacman-conf IgnorePkg)
ignoredpkgs=("${ignoredpkgs[@]//,/ }")
}
GetIgnoredGrps() {
# global ignoredgrps
- ignoredgrps+=($(pacman-conf IgnoreGroup))
+ mapfile -tO "${#ignoredgrps[@]}" ignoredgrps < <(pacman-conf IgnoreGroup)
ignoredgrps=("${ignoredgrps[@]//,/ }")
}
GetInstallScripts() {
local installscriptspath
# global installscripts
- [[ ! -d "${clonedir}/$1" ]] && return
+ [[ -d "${clonedir}/$1" ]] || return
unset installscriptspath installscripts
shopt -s nullglob
installscriptspath=("${clonedir}/$1/"*'.install')
@@ -1597,7 +1600,7 @@ GetInfo() {
CheckRequires() {
local -a Qrequires
- mapfile -t Qrequires < <(expac -Q '%N' "$@")
+ mapfile -t Qrequires < <(expac -Ql'\n' '%N' "$@")
if [[ "${Qrequires[*]}" ]]; then
fail $"failed to prepare transaction (could not satisfy dependencies)"
error $"%s: requires %s" "${Qrequires[*]}" "$*" "${E_INSTALL_DEPS_FAILED}"
@@ -1804,17 +1807,16 @@ esac
pkgs=("$@")
# color
-[[ ! "${color}" && (! "$(pacman-conf Color)" || "${operation}" = upgrades || "${QUIET}" && "${search}") ]] &&
- color='never' || color='auto'
+[[ ! "${color}" && (! "$(pacman-conf Color)" || "${operation}" = upgrades ||
+ "${QUIET}" -ne 0 && "${search}" -ne 0) ]] && color='never' || color='auto'
pacopts+=("--color=${color}") auropts+=("--color=${color}")
-if [[ ! "${color}" = never ]]; then
- reset=$'\033[0m' colorR=$'\033[1;31m' colorG=$'\033[1;32m' colorY=$'\033[1;33m'
- colorB=$'\033[1;34m' colorM=$'\033[1;35m' colorW=$'\033[1;39m'
+if [[ "${color}" != 'never' ]]; then
+ declare -r reset=$'\033[0m' colorR=$'\033[1;31m' colorG=$'\033[1;32m' colorY=$'\033[1;33m' \
+ colorB=$'\033[1;34m' colorM=$'\033[1;35m' colorW=$'\033[1;39m'
else
- reset='' colorR='' colorG='' colorY='' colorB='' colorM='' colorW=''
- makeopts+=('--nocolor')
+ declare -r reset='' colorR='' colorG='' colorY='' colorB='' colorM='' colorW=''
+ makeopts+=('-m')
fi
-declare -r reset colorR colorG colorY colorB colorM colorW
# sanity check
if ((aur)); then