summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authore5ten <e5ten.arch@gmail.com>2019-04-15 13:16:41 -0400
committere5ten <e5ten.arch@gmail.com>2019-05-03 13:59:35 -0400
commit40ff6f73c1a5f18f45bb4c1b329495d095b25efe (patch)
treeb77750c40ac044cd786fc9795f0c4952448d1a15
parentb3f3c2d6d03133057a5929450cfb91c73169373b (diff)
syntactic changes, mainly quoting, * instead of @ in checking for array in [[]], etc.
-rw-r--r--config2
-rwxr-xr-xpacaur991
2 files changed, 495 insertions, 498 deletions
diff --git a/config b/config
index 5a1054d..a58568c 100644
--- a/config
+++ b/config
@@ -14,6 +14,6 @@
#fallback=true # pacman fallback to the AUR
#silent=false # silence output
#sortby=name # sort method (name|votes|popularity)
-#sortorder=descending # sort order (ascending|descending)
+#sortorder=ascending # sort order (ascending|descending)
#sudoloop=true # prevent sudo timeout
diff --git a/pacaur b/pacaur
index abf2f24..1e5c398 100755
--- a/pacaur
+++ b/pacaur
@@ -1,4 +1,5 @@
#!/bin/bash
+# shellcheck disable=SC2076,SC2207
#
# pacaur: an AUR helper that minimizes user interaction
@@ -36,7 +37,7 @@ tmpdir="${XDG_RUNTIME_DIR:-/tmp}"
# preserve environment variables
var=('PACMAN' 'PKGDEST' 'SRCDEST' 'SRCPKGDEST' 'LOGDEST' 'BUILDDIR' 'PKGEXT' 'SRCEXT' 'GPGKEY' 'PACKAGER' 'CARCH')
for i in "${var[@]}"; do
- [[ -n "${!i}" ]] && declare "_${i}"="${!i}"
+ [[ "${!i}" ]] && declare _"$i"="${!i}"
done
# source makepkg variables
@@ -53,17 +54,17 @@ fi
# restore environment variables
for i in "${var[@]}"; do
- j="_${i}"; declare "${i}"="${!j:-${!i}}" && unset j
+ j="_$i" && declare "$i"="${!j:-${!i}}" && unset j
done
# set default config variables
editor="${VISUAL:-${EDITOR:-vi}}" # build files editor
-displaybuildfiles=diff # display build files (none|diff|full)
-fallback=true # pacman fallback to the AUR
-silent=false # silence output
-sortby=name # sort method (name|votes|popularity)
-sortorder=descending # sort order (ascending|descending)
-sudoloop=true # prevent sudo timeout
+displaybuildfiles='diff' # display build files (none|diff|full)
+fallback='true' # pacman fallback to the AUR
+silent='false' # silence output
+sortby='name' # sort method (name|votes|popularity)
+sortorder='ascending' # sort order (ascending|descending)
+sudoloop='true' # prevent sudo timeout
# set variables
pacmanbin="${PACMAN:-pacman}" # pacman binary
@@ -74,7 +75,7 @@ source "$configdir/config"
[[ -r "$userconfigdir/config" ]] && source "$userconfigdir/config"
# set up directories
-[[ ! -d "$clonedir" ]] && mkdir -p "$clonedir" -m 700
+[[ ! -d "$clonedir" ]] && install -dm700 "$clonedir"
# source makepkg libraries
source /usr/share/makepkg/util/parseopts.sh
@@ -95,33 +96,33 @@ fi
ClassifyPkgs() {
local noaurpkgs norepopkgs
# global aurpkgs repopkgs
- if [[ $fallback = true ]]; then
- [[ $repo ]] && repopkgs=(${pkgs[@]})
- if [[ $aur ]]; then
+ if [[ "$fallback" = true ]]; then
+ [[ "$repo" ]] && repopkgs=("${pkgs[@]}")
+ if [[ "$aur" ]]; then
for i in "${pkgs[@]}"; do
- [[ $i == aur/* ]] && aurpkgs+=(${i:4}) && continue # search aur/pkgs in AUR
- aurpkgs+=($i)
+ [[ "$i" = aur/* ]] && aurpkgs+=("${i:4}") && continue # search aur/pkgs in AUR
+ aurpkgs+=("$i")
done
fi
- if [[ ! $repo && ! $aur ]]; then
+ if [[ ! "$repo" && ! "$aur" ]]; then
unset noaurpkgs
for i in "${pkgs[@]}"; do
- [[ $i == aur/* ]] && aurpkgs+=(${i:4}) && continue # search aur/pkgs in AUR
- noaurpkgs+=($i)
+ [[ "$i" = aur/* ]] && aurpkgs+=("${i:4}") && continue # search aur/pkgs in AUR
+ noaurpkgs+=("$i")
done
- [[ -n "${noaurpkgs[@]}" ]] && norepopkgs=($(LC_ALL=C $pacmanbin -Sp ${noaurpkgs[@]} 2>&1 >/dev/null | awk '{print $NF}'))
+ [[ -n "${noaurpkgs[*]}" ]] && norepopkgs=($(LC_ALL=C "$pacmanbin" -Sp "${noaurpkgs[@]}" 2>&1 >/dev/null | awk '{print $NF}'))
for i in "${norepopkgs[@]}"; do
- [[ ! " ${noaurpkgs[@]} " =~ [a-zA-Z0-9\.\+-]+\/$i[^a-zA-Z0-9\.\+-] ]] && aurpkgs+=($i) # do not search repo/pkgs in AUR
+ [[ ! " ${noaurpkgs[*]} " =~ [a-zA-Z0-9\.\+-]+\/"$i"[^a-zA-Z0-9\.\+-] ]] && aurpkgs+=("$i") # do not search repo/pkgs in AUR
done
repopkgs=($(grep -xvf <(printf '%s\n' "${aurpkgs[@]}") <(printf '%s\n' "${noaurpkgs[@]}")))
fi
else
- if [[ ! $aur ]]; then
- repopkgs=(${pkgs[@]})
+ if [[ ! "$aur" ]]; then
+ repopkgs=("${pkgs[@]}")
else
for i in "${pkgs[@]}"; do
- [[ $i == aur/* ]] && aurpkgs+=(${i:4}) && continue # search aur/pkgs in AUR
- aurpkgs+=($i)
+ [[ "$i" = aur/* ]] && aurpkgs+=("${i:4}") && continue # search aur/pkgs in AUR
+ aurpkgs+=("$i")
done
fi
fi
@@ -130,7 +131,7 @@ ClassifyPkgs() {
Core() {
GetIgnoredPkgs
GetIgnoredGrps
- [[ $upgrade ]] && UpgradeAur
+ [[ "$upgrade" ]] && UpgradeAur
IgnoreChecks
DepsSolver
IgnoreDepsChecks
@@ -148,12 +149,12 @@ UpgradeAur() {
# global aurpkgs
Note "i" $"${colorW}Starting AUR upgrade...${reset}"
foreignpkgs=($($pacmanbin -Qmq))
- SetJson ${foreignpkgs[@]}
+ SetJson "${foreignpkgs[@]}"
allaurpkgs=($(GetJson "$json" "Name"))
allaurpkgsAver=($(GetJson "$json" "Version"))
- allaurpkgsQver=($(expac -Q '%v' ${allaurpkgs[@]}))
+ allaurpkgsQver=($(expac -Q '%v' "${allaurpkgs[@]}"))
for i in "${!allaurpkgs[@]}"; do
- [[ $(vercmp "${allaurpkgsAver[$i]}" "${allaurpkgsQver[$i]}") -gt 0 ]] && aurpkgs+=(${allaurpkgs[$i]});
+ [[ "$(vercmp "${allaurpkgsAver[$i]}" "${allaurpkgsQver[$i]}")" -gt 0 ]] && aurpkgs+=("${allaurpkgs[$i]}");
done
# foreign packages check
@@ -163,30 +164,30 @@ UpgradeAur() {
done
# add devel packages
- if [[ $devel ]]; then
+ if [[ "$devel" ]]; then
for i in "${allaurpkgs[@]}"; do
- [[ -n "$(grep -E "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< $i)" ]] && aurpkgs+=($i)
+ grep -qE "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< "$i" && aurpkgs+=("$i")
done
fi
# avoid possible duplicate
- aurpkgs=($(tr ' ' '\n' <<< ${aurpkgs[@]} | sort -u))
+ aurpkgs=($(tr ' ' '\n' <<< "${aurpkgs[@]}" | sort -u))
- NothingToDo ${aurpkgs[@]}
+ NothingToDo "${aurpkgs[@]}"
}
IgnoreChecks() {
local checkaurpkgs checkaurpkgsAver checkaurpkgsAgrp checkaurpkgsQver checkaurpkgsQgrp i json
# global aurpkgs rmaurpkgs
- [[ -z "${ignoredpkgs[@]}" && -z "${ignoredgrps[@]}" ]] && return
+ [[ -z "${ignoredpkgs[*]}" && -z "${ignoredgrps[*]}" ]] && return
# remove AUR pkgs versioning
for i in "${!aurpkgs[@]}"; do
- aurpkgsnover[$i]=$(awk -F ">|<|=" '{print $1}' <<< ${aurpkgs[$i]})
+ aurpkgsnover[$i]="$(awk -F ">|<|=" '{print $1}' <<< "${aurpkgs[$i]}")"
done
# check targets
- SetJson ${aurpkgsnover[@]}
+ SetJson "${aurpkgsnover[@]}"
checkaurpkgs=($(GetJson "$json" "Name"))
errdeps+=($(grep -xvf <(printf '%s\n' "${aurpkgsnover[@]}") <(printf '%s\n' "${checkaurpkgs[@]}")))
errdeps+=($(grep -xvf <(printf '%s\n' "${checkaurpkgs[@]}") <(printf '%s\n' "${aurpkgsnover[@]}")))
@@ -195,106 +196,101 @@ IgnoreChecks() {
checkaurpkgsAver=($(GetJson "$json" "Version"))
checkaurpkgsQver=($(expac -Q '%v' "${checkaurpkgs[@]}"))
for i in "${!checkaurpkgs[@]}"; do
- [[ -n "$(grep -E "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< ${checkaurpkgs[$i]})" ]] && checkaurpkgsAver[$i]=$"latest"
+ grep -qE "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< "${checkaurpkgs[$i]}" && checkaurpkgsAver[$i]=$"latest"
done
for i in "${!checkaurpkgs[@]}"; do
unset isignored
- if [[ " ${ignoredpkgs[@]} " =~ " ${checkaurpkgs[$i]} " ]]; then
+ if [[ " ${ignoredpkgs[*]} " =~ " ${checkaurpkgs[$i]} " ]]; then
isignored=true
- elif [[ -n "${ignoredgrps[@]}" ]]; then
+ elif [[ -n "${ignoredgrps[*]}" ]]; then
unset checkaurpkgsAgrp checkaurpkgsQgrp
checkaurpkgsAgrp=($(GetJson "$json" "Groups" "${checkaurpkgs[$i]}"))
for j in "${checkaurpkgsAgrp[@]}"; do
- [[ " ${ignoredgrps[@]} " =~ " $j " ]] && isignored=true
+ [[ " ${ignoredgrps[*]} " =~ " $j " ]] && isignored=true
done
checkaurpkgsQgrp=($(expac -Q '%G' "${checkaurpkgs[$i]}"))
for j in "${checkaurpkgsQgrp[@]}"; do
- [[ " ${ignoredgrps[@]} " =~ " $j " ]] && isignored=true
+ [[ " ${ignoredgrps[*]} " =~ " $j " ]] && isignored=true
done
fi
- if [[ $isignored = true ]]; then
- if [[ ! $upgrade ]]; then
- if [[ ! $noconfirm ]]; then
+ if [[ "$isignored" = true ]]; then
+ if [[ ! "$upgrade" ]]; then
+ if [[ ! "$noconfirm" ]]; then
if ! Proceed "y" $"${checkaurpkgs[$i]} is in IgnorePkg/IgnoreGroup. Install anyway?"; then
Note "w" $"skipping target: ${colorW}${checkaurpkgs[$i]}${reset}"
- rmaurpkgs+=(${checkaurpkgs[$i]})
+ rmaurpkgs+=("${checkaurpkgs[$i]}")
continue
fi
else
Note "w" $"skipping target: ${colorW}${checkaurpkgs[$i]}${reset}"
- rmaurpkgs+=(${checkaurpkgs[$i]})
+ rmaurpkgs+=("${checkaurpkgs[$i]}")
continue
fi
else
Note "w" $"${colorW}${checkaurpkgs[$i]}${reset}: ignoring package upgrade (${colorR}${checkaurpkgsQver[$i]}${reset} => ${colorG}${checkaurpkgsAver[$i]}${reset})"
- rmaurpkgs+=(${checkaurpkgs[$i]})
+ rmaurpkgs+=("${checkaurpkgs[$i]}")
continue
fi
fi
- aurpkgsnover+=(${checkaurpkgs[$i]})
+ aurpkgsnover+=("${checkaurpkgs[$i]}")
done
- aurpkgs=(${aurpkgsnover[@]})
- NothingToDo ${aurpkgs[@]}
+ aurpkgs=("${aurpkgsnover[@]}")
+ NothingToDo "${aurpkgs[@]}"
}
DepsSolver() {
- local i aurpkgsname aurpkgsver aurpkgsaurver aurpkgsconflicts
+ local i aurpkgsconflicts
# global aurpkgs aurpkgsnover aurpkgsproviders aurdeps deps json errdeps errdepsnover foreignpkgs repodeps depsAname depsAver depsAood depsQver
Note "i" $"resolving dependencies..."
# remove AUR pkgs versioning
for i in "${!aurpkgs[@]}"; do
- aurpkgsnover[$i]=$(awk -F ">|<|=" '{print $1}' <<< ${aurpkgs[$i]})
+ aurpkgsnover[$i]=$(awk -F ">|<|=" '{print $1}' <<< "${aurpkgs[$i]}")
done
# set unversioned json
- SetJson ${aurpkgsnover[@]}
+ SetJson "${aurpkgsnover[@]}"
# set targets providers
- aurpkgsproviders=(${aurpkgsnover[@]})
+ aurpkgsproviders=("${aurpkgsnover[@]}")
aurpkgsproviders+=($(GetJson "$json" "Provides"))
for i in "${!aurpkgsproviders[@]}"; do
- aurpkgsproviders[$i]=$(awk -F ">|<|=" '{print $1}' <<< ${aurpkgsproviders[$i]})
+ aurpkgsproviders[$i]=$(awk -F ">|<|=" '{print $1}' <<< "${aurpkgsproviders[$i]}")
done
# check targets conflicts
aurpkgsconflicts=($(GetJson "$json" "Conflicts"))
- if [[ -n "${aurpkgsconflicts[@]}" ]]; then
+ if [[ -n "${aurpkgsconflicts[*]}" ]]; then
for i in "${!aurpkgsconflicts[@]}"; do
- aurpkgsconflicts[$i]=$(awk -F ">|<|=" '{print $1}' <<< ${aurpkgsconflicts[$i]})
+ aurpkgsconflicts[$i]=$(awk -F ">|<|=" '{print $1}' <<< "${aurpkgsconflicts[$i]}")
done
aurpkgsconflicts=($(grep -xf <(printf '%s\n' "${aurpkgsproviders[@]}") <(printf '%s\n' "${aurpkgsconflicts[@]}")))
- aurpkgsconflicts=($(tr ' ' '\n' <<< ${aurpkgsconflicts[@]} | sort -u))
+ aurpkgsconflicts=($(tr ' ' '\n' <<< "${aurpkgsconflicts[@]}" | sort -u))
for i in "${aurpkgsconflicts[@]}"; do
- [[ ! " ${aurpkgsnover[@]} " =~ " $i " ]] && continue
+ [[ ! " ${aurpkgsnover[*]} " =~ " $i " ]] && continue
[[ " $(GetJson "$json" "Conflicts" "$i") " =~ " $i " ]] && continue
Note "f" $"unresolvable package conflicts detected"
Note "e" $"failed to prepare transaction (conflicting dependencies: $i)"
done
fi
- deps=(${aurpkgsnover[@]})
+ deps=("${aurpkgsnover[@]}")
- [[ -z "${foreignpkgs[@]}" ]] && foreignpkgs=($($pacmanbin -Qmq))
- FindDepsAur ${aurpkgsnover[@]}
+ [[ -z "${foreignpkgs[*]}" ]] && foreignpkgs=($("$pacmanbin" -Qmq))
+ FindDepsAur "${aurpkgsnover[@]}"
# avoid possible duplicate
deps=($(grep -xvf <(printf '%s\n' "${aurdepspkgs[@]}") <(printf '%s\n' "${deps[@]}")))
- deps+=(${aurdepspkgs[@]})
+ deps+=("${aurdepspkgs[@]}")
# ensure correct dependency order
- SetJson ${deps[@]}
- SortDepsAur ${aurpkgs[@]}
- deps=($(tsort <<< ${tsortdeps[@]}))
-
- # error check
- if (($? > 0)); then
- Note "e" $"dependency cycle detected"
- fi
+ SetJson "${deps[@]}"
+ SortDepsAur "${aurpkgs[@]}"
+ deps=($(tsort <<< "${tsortdeps[@]}")) || Note "e" $"dependency cycle detected"
# get AUR packages info
depsAname=($(GetJson "$json" "Name"))
@@ -304,26 +300,26 @@ DepsSolver() {
for i in "${!depsAname[@]}"; do
depsQver[$i]=$(expac -Qs '%v' "^${depsAname[$i]}$" | head -1)
[[ -z "${depsQver[$i]}" ]] && depsQver[$i]="#" # avoid empty elements shift
- [[ -n "$(grep -E "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< ${depsAname[$i]})" ]] && depsAver[$i]=$"latest"
+ grep -qE "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< "${depsAname[$i]}" && depsAver[$i]=$"latest"
done
# no results check
- if [[ -n "${errdeps[@]}" ]]; then
+ if [[ -n "${errdeps[*]}" ]]; then
for i in "${!errdepsnover[@]}"; do
- if [[ " ${aurpkgsnover[@]} " =~ " ${errdepsnover[$i]} " ]]; then
+ if [[ " ${aurpkgsnover[*]} " =~ " ${errdepsnover[$i]} " ]]; then
Note "f" $"no results found for ${errdeps[$i]}"
else
unset tsorterrdeps errdepslist currenterrdep
# find relevant tsorted deps chain
for j in "${deps[@]}"; do
- tsorterrdeps+=($j)
+ tsorterrdeps+=("$j")
[[ " $j " = " ${errdepsnover[$i]} " ]] && break
done
# reverse deps order
- tsorterrdeps=($(awk '{for (i=NF;i>=1;i--) print $i}' <<< ${tsorterrdeps[@]} | awk -F "\n" '{print}'))
- errdepslist+=(${tsorterrdeps[0]})
- FindDepsAurError ${tsorterrdeps[@]}
- errdepslist=($(awk '{for (i=NF;i>=1;i--) print $i}' <<< ${errdepslist[@]} | awk -F "\n" '{print}'))
+ tsorterrdeps=($(awk '{for (i=NF;i>=1;i--) print $i}' <<< "${tsorterrdeps[@]}" | awk -F "\n" '{print}'))
+ errdepslist+=("${tsorterrdeps[0]}")
+ FindDepsAurError "${tsorterrdeps[@]}"
+ errdepslist=($(awk '{for (i=NF;i>=1;i--) print $i}' <<< "${errdepslist[@]}" | awk -F "\n" '{print}'))
Note "f" $"no results found for ${errdeps[$i]} (dependency tree: ${errdepslist[*]})"
fi
done
@@ -331,30 +327,30 @@ DepsSolver() {
fi
# return all binary deps
- FindDepsRepo ${repodeps[@]}
+ FindDepsRepo "${repodeps[@]}"
# avoid possible duplicate
- repodepspkgs=($(tr ' ' '\n' <<< ${repodepspkgs[@]} | sort -u))
+ repodepspkgs=($(tr ' ' '\n' <<< "${repodepspkgs[@]}" | sort -u))
}
FindDepsAur() {
- local depspkgs depspkgstmp depspkgsaurtmp repodepstmp builtpkg vcsdepspkgs assumedepspkgs
+ local depspkgs depspkgstmp depspkgsaurtmp builtpkg vcsdepspkgs assumedepspkgs
local aurversionpkgs aurversionpkgsname aurversionpkgsver aurversionpkgsaurver i j json
# global aurpkgsnover depspkgsaur errdeps depsAname depsAver repodeps aurdepspkgs prevdepspkgsaur foreignpkgs
- [[ $nodeps && $dcount -ge 2 ]] && return
+ [[ "$nodeps" && "$dcount" -ge 2 ]] && return
# set json
unset aurversionpkgs
- if [[ -z "${depspkgsaur[@]}" ]]; then
- SetJson ${aurpkgsnover[@]}
- aurversionpkgs=(${aurpkgs[@]})
+ if [[ -z "${depspkgsaur[*]}" ]]; then
+ SetJson "${aurpkgsnover[@]}"
+ aurversionpkgs=("${aurpkgs[@]}")
else
- SetJson ${depspkgsaur[@]}
- aurversionpkgs=(${prevdepspkgsaur[@]})
+ SetJson "${depspkgsaur[@]}"
+ aurversionpkgs=("${prevdepspkgsaur[@]}")
fi
# versioning check
- if [[ -n "${aurversionpkgs[@]}" ]]; then
+ if [[ -n "${aurversionpkgs[*]}" ]]; then
for i in "${!aurversionpkgs[@]}"; do
unset aurversionpkgsname aurversionpkgsver aurversionpkgsaurver
aurversionpkgsname=${aurversionpkgs[$i]} && aurversionpkgsname=${aurversionpkgsname%[><]*} && aurversionpkgsname=${aurversionpkgsname%=*}
@@ -362,8 +358,8 @@ FindDepsAur() {
aurversionpkgsaurver=$(GetJson "$json" "Version" "$aurversionpkgsname")
# not found in AUR nor repo
- if [[ ! $aurversionpkgsaurver ]]; then
- [[ ! " ${errdeps[@]} " =~ " ${aurversionpkgs[$i]} " ]] && errdeps+=(${aurversionpkgs[$i]})
+ if [[ ! "$aurversionpkgsaurver" ]]; then
+ [[ ! " ${errdeps[*]} " =~ " ${aurversionpkgs[$i]} " ]] && errdeps+=("${aurversionpkgs[$i]}")
continue
fi
@@ -377,7 +373,7 @@ FindDepsAur() {
*"<"*) [[ $(vercmp "$aurversionpkgsaurver" "$aurversionpkgsver") -lt 0 ]] && continue;;
*"="*) [[ $(vercmp "$aurversionpkgsaurver" "$aurversionpkgsver") -eq 0 ]] && continue;;
esac
- [[ ! " ${errdeps[@]} " =~ " ${aurversionpkgs[$i]} " ]] && errdeps+=(${aurversionpkgs[$i]})
+ [[ ! " ${errdeps[*]} " =~ " ${aurversionpkgs[$i]} " ]] && errdeps+=("${aurversionpkgs[$i]}")
;;
*) continue;;
esac
@@ -387,16 +383,16 @@ FindDepsAur() {
depspkgs=($(GetJson "$json" "Depends"))
# cached packages makedeps check
- if [[ ! $PKGDEST || $rebuild ]]; then
+ if [[ ! "$PKGDEST" || "$rebuild" ]]; then
depspkgs+=($(GetJson "$json" "MakeDepends"))
[[ "$checkdeps" == true ]] && depspkgs+=($(GetJson "$json" "CheckDepends"))
else
- [[ -z "${depspkgsaur[@]}" ]] && depspkgsaurtmp=(${aurpkgs[@]}) || depspkgsaurtmp=(${depspkgsaur[@]})
+ [[ -z "${depspkgsaur[*]}" ]] && depspkgsaurtmp=("${aurpkgs[@]}") || depspkgsaurtmp=("${depspkgsaur[@]}")
for i in "${!depspkgsaurtmp[@]}"; do
depsAname=$(GetJson "$json" "Name" "${depspkgsaurtmp[$i]}")
depsAver=$(GetJson "$json" "Version" "${depspkgsaurtmp[$i]}")
GetBuiltPkg "$depsAname-$depsAver" "$PKGDEST"
- if [[ ! $builtpkg ]]; then
+ if [[ ! "$builtpkg" ]]; then
depspkgs+=($(GetJson "$json" "MakeDepends" "${depspkgsaurtmp[$i]}"))
[[ "$checkdeps" == true ]] && depspkgs+=($(GetJson "$json" "CheckDepends"))
fi
@@ -405,103 +401,102 @@ FindDepsAur() {
fi
# remove deps provided by targets
- if [[ -n "${aurpkgsproviders[@]}" ]]; then
+ if [[ -n "${aurpkgsproviders[*]}" ]]; then
depspkgs=($(grep -xvf <(printf '%s\n' "${aurpkgsproviders[@]}") <(printf '%s\n' "${depspkgs[@]}")))
fi
# workaround for limited RPC support of architecture dependent fields
- if [[ ${CARCH} == 'i686' ]]; then
- depspkgstmp=(${depspkgs[@]})
+ if [[ "${CARCH}" == 'i686' ]]; then
+ depspkgstmp=("${depspkgs[@]}")
for i in "${!depspkgstmp[@]}"; do
- [[ -n "$(grep -E "^lib32\-" <<< ${depspkgstmp[$i]})" ]] && depspkgs=($(tr ' ' '\n' <<< ${depspkgs[@]} | sed "s/^${depspkgstmp[$i]}$//g"))
- [[ -n "$(grep -E "^gcc-multilib$" <<< ${depspkgstmp[$i]})" ]] && depspkgs=($(tr ' ' '\n' <<< ${depspkgs[@]} | sed "s/^${depspkgstmp[$i]}$//g"))
+ grep -qE -e "^lib32\-" -e "^gcc-multilib$" <<< "${depspkgstmp[$i]}" && depspkgs=($(tr ' ' '\n' <<< "${depspkgs[@]}" | sed "s/^${depspkgstmp[$i]}$//g"))
done
fi
# remove installed deps
- if [[ ! $devel ]]; then
- depspkgs=($($pacmanbin -T ${depspkgs[@]} | sort -u))
+ if [[ ! "$devel" ]]; then
+ depspkgs=($("$pacmanbin" -T "${depspkgs[@]}" | sort -u))
else
# remove versioning and check providers
unset vcsdepspkgs
for i in "${!depspkgs[@]}"; do
- depspkgs[$i]=$(awk -F ">|<|=" '{print $1}' <<< ${depspkgs[$i]})
+ depspkgs[$i]=$(awk -F ">|<|=" '{print $1}' <<< "${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}')
if [[ -n "$j" ]]; then
depspkgs[$i]="$j"
- [[ $devel ]] && [[ ! " ${ignoredpkgs[@]} " =~ " $j " ]] && [[ -n "$(grep -E "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< $j)" ]] && vcsdepspkgs+=($j)
+ [[ "$devel" ]] && [[ ! " ${ignoredpkgs[*]} " =~ " $j " ]] && grep -qE "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< "$j" && vcsdepspkgs+=("$j")
else
- foreignpkgs+=(${depspkgs[$i]})
+ foreignpkgs+=("${depspkgs[$i]}")
fi
done
# reorder devel
- if [[ $devel ]]; then
- depspkgs=($($pacmanbin -T ${depspkgs[@]} | sort -u))
+ if [[ "$devel" ]]; then
+ depspkgs=($("$pacmanbin" -T "${depspkgs[@]}" | sort -u))
depspkgstmp=($(grep -xvf <(printf '%s\n' "${depspkgs[@]}") <(printf '%s\n' "${vcsdepspkgs[@]}")))
depspkgstmp+=($(grep -xvf <(printf '%s\n' "${vcsdepspkgs[@]}") <(printf '%s\n' "${depspkgs[@]}")))
- depspkgs=($(tr ' ' '\n' <<< ${depspkgstmp[@]} | sort -u))
+ depspkgs=($(tr ' ' '\n' <<< "${depspkgstmp[@]}" | sort -u))
fi
fi
# split binary and AUR depends pkgs
unset depspkgsaur
- if [[ -n "${depspkgs[@]}" ]]; then
+ if [[ -n "${depspkgs[*]}" ]]; then
# remove all pkgs versioning
- if [[ $nodeps && $dcount -eq 1 ]]; then
+ if [[ "$nodeps" && "$dcount" -eq 1 ]]; then
for i in "${!depspkgs[@]}"; do
- depspkgs[$i]=$(awk -F ">|<|=" '{print $1}' <<< ${depspkgs[$i]})
+ depspkgs[$i]=$(awk -F ">|<|=" '{print $1}' <<< "${depspkgs[$i]}")
done
# assume installed deps
- elif [[ -n "${assumeinstalled[@]}" ]]; then
+ elif [[ -n "${assumeinstalled[*]}" ]]; then
# remove versioning
for i in "${!assumeinstalled[@]}"; do
unset assumedepspkgs
- assumeinstalled[$i]=$(awk -F ">|<|=" '{print $1}' <<< ${assumeinstalled[$i]})
+ assumeinstalled[$i]=$(awk -F ">|<|=" '{print $1}' <<< "${assumeinstalled[$i]}")
for j in "${!depspkgs[@]}"; do
- assumedepspkgs[$j]=$(awk -F ">|<|=" '{print $1}' <<< ${depspkgs[$j]})
- [[ " ${assumedepspkgs[@]} " =~ " ${assumeinstalled[$i]} " ]] && depspkgs[$j]=${assumeinstalled[$i]};
+ assumedepspkgs[$j]=$(awk -F ">|<|=" '{print $1}' <<< "${depspkgs[$j]}")
+ [[ " ${assumedepspkgs[*]} " =~ " ${assumeinstalled[$i]} " ]] && depspkgs[$j]=${assumeinstalled[$i]};
done
done
depspkgs=($(grep -xvf <(printf '%s\n' "${assumeinstalled[@]}") <(printf '%s\n' "${depspkgs[@]}")))
fi
- if [[ -n "${depspkgs[@]}" ]]; then
- depspkgsaur=($(LC_ALL=C $pacmanbin -Sp ${depspkgs[@]} 2>&1 >/dev/null | awk '{print $NF}'))
+ if [[ -n "${depspkgs[*]}" ]]; then
+ depspkgsaur=($(LC_ALL=C "$pacmanbin" -Sp "${depspkgs[@]}" 2>&1 >/dev/null | awk '{print $NF}'))
repodeps+=($(grep -xvf <(printf '%s\n' "${depspkgsaur[@]}") <(printf '%s\n' "${depspkgs[@]}")))
fi
fi
unset depspkgs
# remove duplicate
- if [[ -n "${depspkgsaur[@]}" ]]; then
+ if [[ -n "${depspkgsaur[*]}" ]]; then
depspkgsaur=($(grep -xvf <(printf '%s\n' "${aurdepspkgs[@]}") <(printf '%s\n' "${depspkgsaur[@]}")))
fi
# dependency cycle check
- [[ -n "${prevdepspkgsaur[@]}" ]] && [[ "${prevdepspkgsaur[*]}" == "${depspkgsaur[*]}" ]] && Note "e" $"dependency cycle detected (${depspkgsaur[*]})"
+ [[ -n "${prevdepspkgsaur[*]}" ]] && [[ "${prevdepspkgsaur[*]}" = "${depspkgsaur[*]}" ]] && Note "e" $"dependency cycle detected (${depspkgsaur[*]})"
- if [[ -n "${depspkgsaur[@]}" ]]; then
+ if [[ -n "${depspkgsaur[*]}" ]]; then
# store for AUR version check
- [[ ! $nodeps ]] && prevdepspkgsaur=(${depspkgsaur[@]})
+ [[ ! "$nodeps" ]] && prevdepspkgsaur=("${depspkgsaur[@]}")
# remove AUR pkgs versioning
for i in "${!depspkgsaur[@]}"; do
- depspkgsaur[$i]=$(awk -F ">|<|=" '{print $1}' <<< ${depspkgsaur[$i]})
+ depspkgsaur[$i]=$(awk -F ">|<|=" '{print $1}' <<< "${depspkgsaur[$i]}")
done
# remove duplicate
- depspkgsaur=($(tr ' ' '\n' <<< ${depspkgsaur[@]} | sort -u))
+ depspkgsaur=($(tr ' ' '\n' <<< "${depspkgsaur[@]}" | sort -u))
fi
- if [[ -n "${depspkgsaur[@]}" ]]; then
- aurdepspkgs+=(${depspkgsaur[@]})
- FindDepsAur ${depspkgsaur[@]}
+ if [[ -n "${depspkgsaur[*]}" ]]; then
+ aurdepspkgs+=("${depspkgsaur[@]}")
+ FindDepsAur "${depspkgsaur[@]}"
fi
}
SortDepsAur() {
local i j sortaurpkgs sortdepspkgs sortdepspkgsaur
# global checkedsortdepspkgsaur allcheckedsortdepspkgsaur json errdepsnover
- [[ -z "${checkedsortdepspkgsaur[@]}" ]] && sortaurpkgs=(${aurpkgs[@]}) || sortaurpkgs=(${checkedsortdepspkgsaur[@]})
+ [[ -z "${checkedsortdepspkgsaur[*]}" ]] && sortaurpkgs=("${aurpkgs[@]}") || sortaurpkgs=("${checkedsortdepspkgsaur[@]}")
unset checkedsortdepspkgsaur
for i in "${!sortaurpkgs[@]}"; do
@@ -513,19 +508,19 @@ SortDepsAur() {
# remove versioning
for j in "${!errdeps[@]}"; do
- errdepsnover[$j]=$(awk -F ">|<|=" '{print $1}' <<< ${errdeps[$j]})
+ errdepsnover[$j]=$(awk -F ">|<|=" '{print $1}' <<< "${errdeps[$j]}")
done
# check AUR deps only
for j in "${!sortdepspkgs[@]}"; do
- sortdepspkgs[$j]=$(awk -F ">|<|=" '{print $1}' <<< ${sortdepspkgs[$j]})
+ sortdepspkgs[$j]=$(awk -F ">|<|=" '{print $1}' <<< "${sortdepspkgs[$j]}")
sortdepspkgsaur+=($(GetJson "$json" "Name" "${sortdepspkgs[$j]}"))
# add erroneous AUR deps
- [[ " ${errdepsnover[@]} " =~ " ${sortdepspkgs[$j]} " ]] && sortdepspkgsaur+=("${sortdepspkgs[$j]}")
+ [[ " ${errdepsnover[*]} " =~ " ${sortdepspkgs[$j]} " ]] && sortdepspkgsaur+=("${sortdepspkgs[$j]}")
done
# prepare tsort list
- if [[ -z "${sortdepspkgsaur[@]}" ]]; then
+ if [[ -z "${sortdepspkgsaur[*]}" ]]; then
tsortdeps+=("${sortaurpkgs[$i]} ${sortaurpkgs[$i]}")
else
for j in "${!sortdepspkgsaur[@]}"; do
@@ -535,15 +530,15 @@ SortDepsAur() {
# filter non checked deps
sortdepspkgsaur=($(grep -xvf <(printf '%s\n' "${allcheckedsortdepspkgsaur[@]}") <(printf '%s\n' "${sortdepspkgsaur[@]}")))
- if [[ -n "${sortdepspkgsaur[@]}" ]]; then
- checkedsortdepspkgsaur+=(${sortdepspkgsaur[@]})
- allcheckedsortdepspkgsaur+=(${sortdepspkgsaur[@]})
- allcheckedsortdepspkgsaur=($(tr ' ' '\n' <<< ${allcheckedsortdepspkgsaur[@]} | sort -u))
+ if [[ -n "${sortdepspkgsaur[*]}" ]]; then
+ checkedsortdepspkgsaur+=("${sortdepspkgsaur[@]}")
+ allcheckedsortdepspkgsaur+=("${sortdepspkgsaur[@]}")
+ allcheckedsortdepspkgsaur=($(tr ' ' '\n' <<< "${allcheckedsortdepspkgsaur[@]}" | sort -u))
fi
done
- if [[ -n "${checkedsortdepspkgsaur[@]}" ]]; then
- checkedsortdepspkgsaur=($(tr ' ' '\n' <<< ${checkedsortdepspkgsaur[@]} | sort -u))
- SortDepsAur ${checkedsortdepspkgsaur[@]}
+ if [[ -n "${checkedsortdepspkgsaur[*]}" ]]; then
+ checkedsortdepspkgsaur=($(tr ' ' '\n' <<< "${checkedsortdepspkgsaur[@]}" | sort -u))
+ SortDepsAur "${checkedsortdepspkgsaur[@]}"
fi
}
@@ -552,27 +547,27 @@ FindDepsAurError() {
# global errdepsnover errdepslist tsorterrdeps currenterrdep
for i in "${tsorterrdeps[@]}"; do
- [[ ! " ${errdepsnover[@]} " =~ " $i " ]] && [[ ! " ${errdepslist[@]} " =~ " $i " ]] && nexterrdep="$i" && break
+ [[ ! " ${errdepsnover[*]} " =~ " $i " ]] && [[ ! " ${errdepslist[*]} " =~ " $i " ]] && nexterrdep="$i" && break
done
- [[ -z "${currenterrdep[@]}" ]] && currenterrdep=${tsorterrdeps[0]}
+ [[ -z "${currenterrdep[*]}" ]] && currenterrdep=${tsorterrdeps[0]}
- if [[ ! " ${aurpkgs[@]} " =~ " $nexterrdep " ]]; then
+ if [[ ! " ${aurpkgs[*]} " =~ " $nexterrdep " ]]; then
nextallerrdeps=($(GetJson "$json" "Depends" "$nexterrdep"))
nextallerrdeps+=($(GetJson "$json" "MakeDepends" "$nexterrdep"))
[[ "$checkdeps" == true ]] && depspkgs+=($(GetJson "$json" "CheckDepends"))
# remove versioning
for i in "${!nextallerrdeps[@]}"; do
- nextallerrdeps[$i]=$(awk -F ">|<|=" '{print $1}' <<< ${nextallerrdeps[$i]})
+ nextallerrdeps[$i]=$(awk -F ">|<|=" '{print $1}' <<< "${nextallerrdeps[$i]}")
done
- if [[ " ${nextallerrdeps[@]} " =~ " $currenterrdep " ]]; then
+ if [[ " ${nextallerrdeps[*]} " =~ " $currenterrdep " ]]; then
errdepslist+=("$nexterrdep")
- currenterrdep=${tsorterrdeps[0]}
+ currenterrdep="${tsorterrdeps[0]}"
fi
- tsorterrdeps=(${tsorterrdeps[@]:1})
- FindDepsAurError ${tsorterrdeps[@]}
+ tsorterrdeps=("${tsorterrdeps[@]:1}")
+ FindDepsAurError "${tsorterrdeps[@]}"
else
for i in "${!aurpkgs[@]}"; do
nextallerrdeps=($(GetJson "$json" "Depends" "${aurpkgs[$i]}"))
@@ -581,10 +576,10 @@ FindDepsAurError() {
# remove versioning
for j in "${!nextallerrdeps[@]}"; do
- nextallerrdeps[$j]=$(awk -F ">|<|=" '{print $1}' <<< ${nextallerrdeps[$j]})
+ nextallerrdeps[$j]=$(awk -F ">|<|=" '{print $1}' <<< "${nextallerrdeps[$j]}")
done
- if [[ " ${nextallerrdeps[@]} " =~ " $currenterrdep " ]]; then
+ if [[ " ${nextallerrdeps[*]} " =~ " $currenterrdep " ]]; then
errdepslist+=("${aurpkgs[$i]}")
fi
done
@@ -594,85 +589,84 @@ FindDepsAurError() {
FindDepsRepo() {
local allrepodepspkgs repodepspkgstmp
# global repodeps repodepspkgs
- [[ -z "${repodeps[@]}" ]] && return
+ [[ -z "${repodeps[*]}" ]] && return
# reduce root binary deps
- repodeps=($(tr ' ' '\n' <<< ${repodeps[@]} | sort -u))
+ repodeps=($(tr ' ' '\n' <<< "${repodeps[@]}" | sort -u))
# add initial repodeps
- [[ -z "${repodepspkgs[@]}" ]] && repodepspkgs=(${repodeps[@]})
+ [[ -z "${repodepspkgs[*]}" ]] && repodepspkgs=("${repodeps[@]}")
# get non installed repo deps
unset allrepodepspkgs repodepspkgstmp
- [[ -n "${repodeps[@]}" ]] && allrepodepspkgs=($(expac -S -1 '%E' ${repodeps[@]})) # no version check needed as all deps are binary
- [[ -n "${allrepodepspkgs[@]}" ]] && repodepspkgstmp=($($pacmanbin -T ${allrepodepspkgs[@]} | sort -u))
+ [[ -n "${repodeps[*]}" ]] && allrepodepspkgs=($(expac -S -1 '%E' "${repodeps[@]}")) # no version check needed as all deps are binary
+ [[ -n "${allrepodepspkgs[*]}" ]] && repodepspkgstmp=($("$pacmanbin" -T "${allrepodepspkgs[@]}" | sort -u))
# remove duplicate
- if [[ -n "${repodepspkgstmp[@]}" ]]; then
+ if [[ -n "${repodepspkgstmp[*]}" ]]; then
repodepspkgstmp=($(grep -xvf <(printf '%s\n' "${repodepspkgs[@]}") <(printf '%s\n' "${repodepspkgstmp[@]}")))
fi
- if [[ -n "${repodepspkgstmp[@]}" ]]; then
- repodepspkgs+=(${repodepspkgstmp[@]})
+ if [[ -n "${repodepspkgstmp[*]}" ]]; then
+ repodepspkgs+=("${repodepspkgstmp[@]}")
- repodeps=(${repodepspkgstmp[@]})
- FindDepsRepo ${repodeps[@]}
+ repodeps=("${repodepspkgstmp[@]}")
+ FindDepsRepo "${repodeps[@]}"
fi
}
FindDepsRepoProvider() {
local allrepodepspkgs providerrepodepspkgstmp
# global repodeps repodepspkgs
- [[ -z "${providerspkgs[@]}" ]] && return
+ [[ -z "${providerspkgs[*]}" ]] && return
# reduce root binary deps
- providerspkgs=($(tr ' ' '\n' <<< ${providerspkgs[@]} | sort -u))
+ providerspkgs=($(tr ' ' '\n' <<< "${providerspkgs[@]}" | sort -u))
# get non installed repo deps
unset allproviderrepodepspkgs providerrepodepspkgstmp
- [[ -n "${providerspkgs[@]}" ]] && allproviderrepodepspkgs=($(expac -S -1 '%E' ${providerspkgs[@]})) # no version check needed as all deps are binary
- [[ -n "${allproviderrepodepspkgs[@]}" ]] && providerrepodepspkgstmp=($($pacmanbin -T ${allproviderrepodepspkgs[@]} | sort -u))
+ [[ -n "${providerspkgs[*]}" ]] && allproviderrepodepspkgs=($(expac -S -1 '%E' "${providerspkgs[@]}")) # no version check needed as all deps are binary
+ [[ -n "${allproviderrepodepspkgs[*]}" ]] && providerrepodepspkgstmp=($("$pacmanbin" -T "${allproviderrepodepspkgs[@]}" | sort -u))
# remove duplicate
- if [[ -n "${providerrepodepspkgstmp[@]}" ]]; then
+ if [[ -n "${providerrepodepspkgstmp[*]}" ]]; then
providerrepodepspkgstmp=($(grep -xvf <(printf '%s\n' "${repodepspkgs[@]}") <(printf '%s\n' "${providerrepodepspkgstmp[@]}")))
fi
- if [[ -n "${providerrepodepspkgstmp[@]}" ]]; then
- repodepspkgs+=(${providerrepodepspkgstmp[@]})
-
- providerspkgs=(${providerrepodepspkgstmp[@]})
- FindDepsRepoProvider ${providerspkgs[@]}
+ if [[ -n "${providerrepodepspkgstmp[*]}" ]]; then
+ repodepspkgs+=("${providerrepodepspkgstmp[@]}")
+ providerspkgs=("${providerrepodepspkgstmp[@]}")
+ FindDepsRepoProvider "${providerspkgs[@]}"
fi
}
IgnoreDepsChecks() {
local i
# global ignoredpkgs aurpkgs aurdepspkgs aurdepspkgsAgrp aurdepspkgsQgrp repodepspkgsSgrp repodepspkgsQgrp rmaurpkgs deps repodepspkgs
- [[ -z "${ignoredpkgs[@]}" && -z "${ignoredgrps[@]}" ]] && return
+ [[ -z "${ignoredpkgs[*]}" && -z "${ignoredgrps[*]}" ]] && return
# add checked targets and preserve tsorted order
- deps=(${deps[@]:0:${#aurpkgs[@]}})
+ deps=("${deps[@]:0:${#aurpkgs[@]}}")
# check dependencies
for i in "${repodepspkgs[@]}"; do
unset isignored
- if [[ " ${ignoredpkgs[@]} " =~ " $i " ]]; then
+ if [[ " ${ignoredpkgs[*]} " =~ " $i " ]]; then
isignored=true
- elif [[ -n "${ignoredgrps[@]}" ]]; then
+ elif [[ -n "${ignoredgrps[*]}" ]]; then
unset repodepspkgsSgrp repodepspkgsQgrp
repodepspkgsSgrp=($(expac -S -1 '%G' "$i"))
for j in "${repodepspkgsSgrp[@]}"; do
- [[ " ${ignoredgrps[@]} " =~ " $j " ]] && isignored=true
+ [[ " ${ignoredgrps[*]} " =~ " $j " ]] && isignored=true
done
repodepspkgsQgrp=($(expac -Q '%G' "$i"))
for j in "${repodepspkgsQgrp[@]}"; do
- [[ " ${ignoredgrps[@]} " =~ " $j " ]] && isignored=true
+ [[ " ${ignoredgrps[*]} " =~ " $j " ]] && isignored=true
done
fi
- if [[ $isignored = true ]]; then
- if [[ ! $upgrade ]]; then
+ if [[ "$isignored" = true ]]; then
+ if [[ ! "$upgrade" ]]; then
Note "w" $"skipping target: ${colorW}$i${reset}"
else
Note "w" $"${colorW}$i${reset}: ignoring package upgrade"
@@ -682,32 +676,32 @@ IgnoreDepsChecks() {
done
for i in "${aurdepspkgs[@]}"; do
# skip already checked dependencies
- [[ " ${aurpkgs[@]} " =~ " $i " ]] && continue
- [[ " ${rmaurpkgs[@]} " =~ " $i " ]] && Note "e" $"Unresolved dependency '${colorW}$i${reset}'"
+ [[ " ${aurpkgs[*]} " =~ " $i " ]] && continue
+ [[ " ${rmaurpkgs[*]} " =~ " $i " ]] && Note "e" $"Unresolved dependency '${colorW}$i${reset}'"
unset isignored
- if [[ " ${ignoredpkgs[@]} " =~ " $i " ]]; then
+ if [[ " ${ignoredpkgs[*]} " =~ " $i " ]]; then
isignored=true
- elif [[ -n "${ignoredgrps[@]}" ]]; then
+ elif [[ -n "${ignoredgrps[*]}" ]]; then
unset aurdepspkgsAgrp aurdepspkgsQgrp
aurdepspkgsAgrp=($(GetJson "$json" "Groups" "$i"))
for j in "${aurdepspkgsAgrp[@]}"; do
- [[ " ${ignoredgrps[@]} " =~ " $j " ]] && isignored=true
+ [[ " ${ignoredgrps[*]} " =~ " $j " ]] && isignored=true
done
aurdepspkgsQgrp=($(expac -Q '%G' "$i"))
for j in "${aurdepspkgsQgrp[@]}"; do
- [[ " ${ignoredgrps[@]} " =~ " $j " ]] && isignored=true
+ [[ " ${ignoredgrps[*]} " =~ " $j " ]] && isignored=true
done
fi
- if [[ $isignored = true ]]; then
- if [[ ! $noconfirm ]]; then
+ if [[ "$isignored" = true ]]; then
+ if [[ ! "$noconfirm" ]]; then
if ! Proceed "y" $"$i dependency is in IgnorePkg/IgnoreGroup. Install anyway?"; then
Note "w" $"skipping target: ${colorW}$i${reset}"
Note "e" $"Unresolved dependency '${colorW}$i${reset}'"
fi
else
- if [[ ! $upgrade ]]; then
+ if [[ ! "$upgrade" ]]; then
Note "w" $"skipping target: ${colorW}$i${reset}"
else
Note "w" $"${colorW}$i${reset}: ignoring package upgrade"
@@ -715,29 +709,29 @@ IgnoreDepsChecks() {
Note "e" $"Unresolved dependency '${colorW}$i${reset}'"
fi
fi
- deps+=($i)
+ deps+=("$i")
done
}
ProviderChecks() {
- local allproviders providersdeps providersdepsnover providers repodepspkgsprovided providerspkgs provided nb providersnb
+ local providersdeps providersdepsnover providers repodepspkgsprovided providerspkgs provided nb providersnb
# global repodepspkgs repoprovidersconflictingpkgs repodepsSver repodepsSrepo repodepsQver
- [[ -z "${repodepspkgs[@]}" ]] && return
+ [[ -z "${repodepspkgs[*]}" ]] && return
# filter directly provided deps
- noprovidersdeps=($(expac -S -1 '%n' ${repodepspkgs[@]}))
+ noprovidersdeps=($(expac -S -1 '%n' "${repodepspkgs[@]}"))
providersdeps=($(grep -xvf <(printf '%s\n' "${noprovidersdeps[@]}") <(printf '%s\n' "${repodepspkgs[@]}")))
# remove installed providers
- providersdeps=($($pacmanbin -T ${providersdeps[@]} | sort -u))
+ providersdeps=($("$pacmanbin" -T "${providersdeps[@]}" | sort -u))
for i in "${!providersdeps[@]}"; do
# check versioning
unset providersdepsname providersdepsver providersdepsSname providersdepsSver
- providersdepsname=${providersdeps[$i]} && providersdepsname=${providersdepsname%[><]*} && providersdepsname=${providersdepsname%=*}
- providersdepsver=${providersdeps[$i]} && providersdepsver=${providersdepsver#*=} && providersdepsver=${providersdepsver#*[><]}
- providersdepsSname=($(expac -Ss '%n' ^${providersdepsname[$i]}$))
- providersdepsSver=($(expac -Ss '%v' ^${providersdepsname[$i]}$))
+ providersdepsname="${providersdeps[$i]}" && providersdepsname="${providersdepsname%[><]*}" && providersdepsname="${providersdepsname%=*}"
+ providersdepsver="${providersdeps[$i]}" && providersdepsver="${providersdepsver#*=}" && providersdepsver="${providersdepsver#*[><]}"
+ providersdepsSname=($(expac -Ss '%n' "^${providersdepsname[$i]}$"))
+ providersdepsSver=($(expac -Ss '%v' "^${providersdepsname[$i]}$"))
case "${providersdeps[$i]}" in
*">"*|*"<"*|*"="*)
@@ -756,50 +750,49 @@ ProviderChecks() {
esac
# remove versioning
- providersdeps[$i]=$(awk -F ">|<|=" '{print $1}' <<< ${providersdeps[$i]})
+ providersdeps[$i]="$(awk -F ">|<|=" '{print $1}' <<< "${providersdeps[$i]}")"
# list providers
providers=($(expac -Ss '%n' "^${providersdeps[$i]}$" | sort -u))
# filter out non matching versioned providers
- [[ -n "${providersdepsnover[@]}" ]] && providers=($(grep -xf <(printf '%s\n' "${providersdepsnover[@]}") <(printf '%s\n' "${providers[@]}")))
+ [[ -n "${providersdepsnover[*]}" ]] && providers=($(grep -xf <(printf '%s\n' "${providersdepsnover[@]}") <(printf '%s\n' "${providers[@]}")))
# skip if provided in dependency chain
unset repodepspkgsprovided
for j in "${!providers[@]}"; do
- [[ " ${repodepspkgs[@]} " =~ " ${providers[$j]} " ]] && repodepspkgsprovided='true'
+ [[ " ${repodepspkgs[*]} " =~ " ${providers[$j]} " ]] && repodepspkgsprovided='true'
done
- [[ $repodepspkgsprovided ]] && continue
+ [[ "$repodepspkgsprovided" ]] && continue
# skip if already provided
- if [[ -n "${providerspkgs[@]}" ]]; then
- providerspkgs=($(tr ' ' '|' <<< ${providerspkgs[@]}))
+ if [[ -n "${providerspkgs[*]}" ]]; then
+ providerspkgs=($(tr ' ' '|' <<< "${providerspkgs[@]}"))
provided+=($(expac -Ss '%S' "^(${providerspkgs[*]})$"))
- [[ " ${provided[@]} " =~ " ${providersdeps[$i]} " ]] && continue
+ [[ " ${provided[*]} " =~ " ${providersdeps[$i]} " ]] && continue
fi
- if [[ ! $noconfirm && ${#providers[@]} -gt 1 ]]; then
+ if [[ ! "$noconfirm" && "${#providers[*]}" -gt 1 ]]; then
Note "i" $"${colorW}There are ${#providers[@]} providers available for ${providersdeps[$i]}:${reset}"
expac -S -1 ' %!) %n (%r) ' "${providers[@]}"
local nb=-1
- providersnb=$(( ${#providers[@]} -1 )) # count from 0
- while [[ $nb -lt 0 || $nb -ge ${#providers} ]]; do
-
+ providersnb=$(( "${#providers[@]}" -1 )) # count from 0
+ while [[ "$nb" -lt 0 || "$nb" -ge "${#providers}" ]]; do
printf "\n%s " $"Enter a number (default=0):"
case "$TERM" in
dumb)
read -r nb
;;
*)
- read -r -n "$(echo -n $providersnb | wc -m)" nb
+ read -r -n "$(echo -n "$providersnb" | wc -m)" nb
echo
;;
esac
- case $nb in
+ case "$nb" in
[0-9]|[0-9][0-9])
- if [[ $nb -lt 0 || $nb -ge ${#providers[@]} ]]; then
+ if [[ "$nb" -lt 0 || "$nb" -ge "${#providers[@]}" ]]; then
echo && Note "f" $"invalid value: $nb is not between 0 and $providersnb" && ((i--))
else
break
@@ -811,19 +804,19 @@ ProviderChecks() {
else
local nb=0
fi
- providerspkgs+=(${providers[$nb]})
+ providerspkgs+=("${providers[$nb]}")
done
# add selected providers to repo deps
- repodepspkgs+=(${providerspkgs[@]})
+ repodepspkgs+=("${providerspkgs[@]}")
# store for installation
- repoprovidersconflictingpkgs+=(${providerspkgs[@]})
+ repoprovidersconflictingpkgs+=("${providerspkgs[@]}")
- FindDepsRepoProvider ${providerspkgs[@]}
+ FindDepsRepoProvider "${providerspkgs[@]}"
# get binary packages info
- if [[ -n "${repodepspkgs[@]}" ]]; then
+ if [[ -n "${repodepspkgs[*]}" ]]; then
repodepspkgs=($(expac -S -1 '%n' "${repodepspkgs[@]}" | sort -u))
repodepsSver=($(expac -S -1 '%v' "${repodepspkgs[@]}"))
repodepsQver=($(expac -Q '%v' "${repodepspkgs[@]}"))
@@ -842,52 +835,52 @@ ConflictChecks() {
allQconflicts=($(expac -Q '%C'))
# AUR conflicts
- Aprovides=(${depsAname[@]})
+ Aprovides=("${depsAname[@]}")
Aprovides+=($(GetJson "$json" "Provides"))
Aconflicts=($(GetJson "$json" "Conflicts"))
# remove AUR versioning
for i in "${!Aprovides[@]}"; do
- Aprovides[$i]=$(awk -F ">|<|=" '{print $1}' <<< ${Aprovides[$i]})
+ Aprovides[$i]=$(awk -F ">|<|=" '{print $1}' <<< "${Aprovides[$i]}")
done
for i in "${!Aconflicts[@]}"; do
- Aconflicts[$i]=$(awk -F ">|<|=" '{print $1}' <<< ${Aconflicts[$i]})
+ Aconflicts[$i]=$(awk -F ">|<|=" '{print $1}' <<< "${Aconflicts[$i]}")
done
aurconflicts=($(grep -xf <(printf '%s\n' "${Aprovides[@]}") <(printf '%s\n' "${allQconflicts[@]}")))
aurconflicts+=($(grep -xf <(printf '%s\n' "${Aconflicts[@]}") <(printf '%s\n' "${allQprovides[@]}")))
- aurconflicts=($(tr ' ' '\n' <<< ${aurconflicts[@]} | sort -u))
+ aurconflicts=($(tr ' ' '\n' <<< "${aurconflicts[@]}" | sort -u))
for i in "${aurconflicts[@]}"; do
unset aurAconflicts
- [[ " ${depsAname[@]} " =~ " $i " ]] && aurAconflicts=($i)
+ [[ " ${depsAname[*]} " =~ " $i " ]] && aurAconflicts=("$i")
for j in "${depsAname[@]}"; do
[[ " $(GetJson "$json" "Conflicts" "$j") " =~ " $i " ]] && aurAconflicts+=($j)
done
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 target only
- [[ "$j" == "$k" || -z "$k" ]] && continue # skip if reinstalling or if no conflict exists
+ 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
+ [[ "$j" = "$k" || -z "$k" ]] && continue # skip if reinstalling or if no conflict exists
- Aprovides=($j)
- if [[ ! $noconfirm && ! " ${aurconflictingpkgs[@]} " =~ " $k " ]]; then
+ Aprovides=("$j")
+ if [[ ! "$noconfirm" && ! " ${aurconflictingpkgs[*]} " =~ " $k " ]]; then
if ! Proceed "n" $"$j and $k are in conflict ($i). Remove $k?"; then
aurconflictingpkgs+=($j $k)
- aurconflictingpkgsrm+=($k)
+ aurconflictingpkgsrm+=("$k")
for l in "${!depsAname[@]}"; do
[[ " ${depsAname[$l]} " =~ "$k" ]] && depsQver[$l]=$(expac -Qs '%v' "^$k$" | head -1)
done
Aprovides+=($(GetJson "$json" "Provides" "$j"))
# remove AUR versioning
for l in "${!Aprovides[@]}"; do
- Aprovides[$l]=$(awk -F ">|<|=" '{print $1}' <<< ${Aprovides[$l]})
+ Aprovides[$l]=$(awk -F ">|<|=" '{print $1}' <<< "${Aprovides[$l]}")
done
- [[ ! " ${Aprovides[@]} " =~ " $k " && ! " ${aurconflictingpkgsrm[@]} " =~ " $k " ]] && CheckRequires $k
+ [[ ! " ${Aprovides[*]} " =~ " $k " && ! " ${aurconflictingpkgsrm[*]} " =~ " $k " ]] && CheckRequires "$k"
break
else
Note "f" $"unresolvable package conflicts detected"
Note "f" $"failed to prepare transaction (conflicting dependencies)"
- if [[ $upgrade ]]; then
+ if [[ "$upgrade" ]]; then
Qrequires=($(expac -Q '%N' "$i"))
Note "e" $"$j and $k are in conflict (required by ${Qrequires[*]})"
else
@@ -898,17 +891,17 @@ ConflictChecks() {
Aprovides+=($(GetJson "$json" "Provides" "$j"))
# remove AUR versioning
for l in "${!Aprovides[@]}"; do
- Aprovides[$l]=$(awk -F ">|<|=" '{print $1}' <<< ${Aprovides[$l]})
+ Aprovides[$l]=$(awk -F ">|<|=" '{print $1}' <<< "${Aprovides[$l]}")
done
- [[ ! " ${Aprovides[@]} " =~ " $k " && ! " ${aurconflictingpkgsrm[@]} " =~ " $k " ]] && CheckRequires $k
+ [[ ! " ${Aprovides[*]} " =~ " $k " && ! " ${aurconflictingpkgsrm[*]} " =~ " $k " ]] && CheckRequires "$k"
done
done
- NothingToDo ${deps[@]}
+ NothingToDo "${deps[@]}"
# repo conflicts
- if [[ -n "${repodepspkgs[@]}" ]]; then
- repodepsprovides=(${repodepspkgs[@]})
+ if [[ -n "${repodepspkgs[*]}" ]]; then
+ repodepsprovides=("${repodepspkgs[@]}")
repodepsprovides+=($(expac -S -1 '%S' "${repodepspkgs[@]}")) # no versioning
repodepsconflicts=($(expac -S -1 '%H' "${repodepspkgs[@]}"))
@@ -916,11 +909,11 @@ ConflictChecks() {
unset checkedrepodepsconflicts
for i in "${!repodepsconflicts[@]}"; do
unset repodepsconflictsname repodepsconflictsver localver
- repodepsconflictsname=${repodepsconflicts[$i]} && repodepsconflictsname=${repodepsconflictsname%[><]*} && repodepsconflictsname=${repodepsconflictsname%=*}
- repodepsconflictsver=${repodepsconflicts[$i]} && repodepsconflictsver=${repodepsconflictsver#*=} && repodepsconflictsver=${repodepsconflictsver#*[><]}
- [[ $repodepsconflictsname ]] && localver=$(expac -Q '%v' $repodepsconflictsname)
+ repodepsconflictsname="${repodepsconflicts[$i]}" && repodepsconflictsname="${repodepsconflictsname%[><]*}" && repodepsconflictsname="${repodepsconflictsname%=*}"
+ repodepsconflictsver="${repodepsconflicts[$i]}" && repodepsconflictsver="${repodepsconflictsver#*=}" && repodepsconflictsver="${repodepsconflictsver#*[><]}"
+ [[ "$repodepsconflictsname" ]] && localver=$(expac -Q '%v' "$repodepsconflictsname")
- if [[ $localver ]]; then
+ if [[ "$localver" ]]; then
case "${repodepsconflicts[$i]}" in
*">="*) [[ $(vercmp "$repodepsconflictsver" "$localver") -ge 0 ]] && continue;;
*"<="*) [[ $(vercmp "$repodepsconflictsver" "$localver") -le 0 ]] && continue;;
@@ -934,28 +927,28 @@ ConflictChecks() {
repoconflicts+=($(grep -xf <(printf '%s\n' "${repodepsprovides[@]}") <(printf '%s\n' "${allQconflicts[@]}")))
repoconflicts+=($(grep -xf <(printf '%s\n' "${checkedrepodepsconflicts[@]}") <(printf '%s\n' "${allQprovides[@]}")))
- repoconflicts=($(tr ' ' '\n' <<< ${repoconflicts[@]} | sort -u))
+ repoconflicts=($(tr ' ' '\n' <<< "${repoconflicts[@]}" | sort -u))
fi
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}'))
+ 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" || -z "$k" ]] && continue # skip when no conflict with repopkgs
+ 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" || -z "$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)
- repoconflictingpkgsrm+=($k)
- repoprovidersconflictingpkgs+=($j)
+ repoconflictingpkgs+=("$j" "$k")
+ repoconflictingpkgsrm+=("$k")
+ repoprovidersconflictingpkgs+=("$j")
Qprovides=($(expac -Ss '%S' "^$k$"))
- [[ ! " ${Qprovides[@]} " =~ " $k " && ! " ${repoconflictingpkgsrm[@]} " =~ " $k " ]] && CheckRequires $k
+ [[ ! " ${Qprovides[*]} " =~ " $k " && ! " ${repoconflictingpkgsrm[*]} " =~ " $k " ]] && CheckRequires "$k"
break
else
Note "f" $"unresolvable package conflicts detected"
Note "f" $"failed to prepare transaction (conflicting dependencies)"
- if [[ $upgrade ]]; then
+ if [[ "$upgrade" ]]; then
Qrequires=($(expac -Q '%N' "$i"))
Note "e" $"$j and $k are in conflict (required by ${Qrequires[*]})"
else
@@ -964,7 +957,7 @@ ConflictChecks() {
fi
fi
Qprovides=($(expac -Ss '%S' "^$k$"))
- [[ ! " ${Qprovides[@]} " =~ " $k " ]] && CheckRequires $k
+ [[ ! " ${Qprovides[*]} " =~ " $k " ]] && CheckRequires "$k"
done
done
}
@@ -974,24 +967,24 @@ 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
+ [[ ! " ${aurpkgs[*]} " =~ " ${depsAname[$i]} " || " ${aurconflictingpkgs[*]} " =~ " ${depsAname[$i]} " ]] && continue
[[ -z "${depsQver[$i]}" || "${depsQver[$i]}" = '#' || $(vercmp "${depsAver[$i]}" "${depsQver[$i]}") -gt 0 ]] && continue
- [[ ! $installpkg && ! " ${aurdepspkgs[@]} " =~ " ${depsAname[$i]} " ]] && continue
- if [[ -n "$(grep -E "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< ${depsAname[$i]})" ]]; then
+ [[ ! $installpkg && ! " ${aurdepspkgs[*]} " =~ " ${depsAname[$i]} " ]] && continue
+ if grep -qE "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< "${depsAname[$i]}"; then
Note "w" $"${colorW}${depsAname[$i]}${reset} latest revision -- fetching"
else
if [[ ! $needed ]]; then
Note "w" $"${colorW}${depsAname[$i]}-${depsQver[$i]}${reset} is up to date -- reinstalling"
else
Note "w" $"${colorW}${depsAname[$i]}-${depsQver[$i]}${reset} is up to date -- skipping"
- deps=($(tr ' ' '\n' <<< ${deps[@]} | sed "s/^${depsAname[$i]}$//g"))
- unset depsAname[$i] depsQver[$i] depsAver[$i] depsAood[$i] depsAmain[$i]
+ deps=($(tr ' ' '\n' <<< "${deps[@]}" | sed "s/^${depsAname[$i]}$//g"))
+ unset "depsAname[$i]" "depsQver[$i]" "depsAver[$i]" "depsAood[$i]" "depsAmain[$i]"
fi
fi
done
- [[ $needed ]] && depsAname=(${depsAname[@]}) && depsQver=(${depsQver[@]}) && depsAver=(${depsAver[@]}) && depsAood=(${depsAood[@]}) && depsAmain=(${depsAmain[@]})
+ [[ "$needed" ]] && depsAname=(${depsAname[@]}) && depsQver=(${depsQver[@]}) && depsAver=(${depsAver[@]}) && depsAood=(${depsAood[@]}) && depsAmain=(${depsAmain[@]})
- NothingToDo ${deps[@]}
+ NothingToDo "${deps[@]}"
}
OutofdateChecks() {
@@ -1011,20 +1004,20 @@ OrphanChecks() {
}
Prompt() {
- local i binaryksize sumk summ builtpkg cachedpkgs strname stroldver strnewver strsize action
+ local i binaryksize sumk summ builtpkg cachedpkgs stroldver strnewver strsize action
local depsver repodepspkgsver strrepodlsize strrepoinsize strsumk strsumm lreposizelabel lreposize
# global repodepspkgs repodepsSver depsAname depsAver depsArepo depsAcached lname lver lsize deps depsQver repodepspkgs repodepsSrepo repodepsQver repodepsSver
# compute binary size
- if [[ -n "${repodepspkgs[@]}" ]]; then
+ if [[ -n "${repodepspkgs[*]}" ]]; then
binaryksize=($(expac -S -1 '%k' "${repodepspkgs[@]}"))
binarymsize=($(expac -S -1 '%m' "${repodepspkgs[@]}"))
sumk=0
summ=0
for i in "${!repodepspkgs[@]}"; do
GetBuiltPkg "${repodepspkgs[$i]}-${repodepsSver[$i]}" '/var/cache/pacman/pkg'
- [[ $builtpkg ]] && binaryksize[$i]=0
- sumk=$((sumk + ${binaryksize[$i]}))
- summ=$((summ + ${binarymsize[$i]}))
+ [[ "$builtpkg" ]] && binaryksize[$i]=0
+ sumk=$((sumk + "${binaryksize[$i]}"))
+ summ=$((summ + "${binarymsize[$i]}"))
done
sumk=$(awk '{ printf("%.2f\n", $1/$2) }' <<< "$sumk 1048576")
summ=$(awk '{ printf("%.2f\n", $1/$2) }' <<< "$summ 1048576")
@@ -1032,17 +1025,17 @@ Prompt() {
# cached packages check
for i in "${!depsAname[@]}"; do
- [[ ! $PKGDEST || $rebuild ]] && break
+ [[ ! "$PKGDEST" || "$rebuild" ]] && break
GetBuiltPkg "${depsAname[$i]}-${depsAver[$i]}" "$PKGDEST"
- [[ $builtpkg ]] && cachedpkgs+=(${depsAname[$i]}) && depsAcached[$i]=$"(cached)" || depsAcached[$i]=""
+ [[ "$builtpkg" ]] && cachedpkgs+=(${depsAname[$i]}) && depsAcached[$i]=$"(cached)" || depsAcached[$i]=""
unset builtpkg
done
- if [[ -n $(pacman-conf VerbosePkgLists) ]]; then
+ if [[ "$(pacman-conf VerbosePkgLists)" ]]; then
straurname=$"AUR Packages (${#deps[@]})"; strreponame=$"Repo Packages (${#repodepspkgs[@]})"; stroldver=$"Old Version"; strnewver=$"New Version"; strsize=$"Download Size"
- depsArepo=(${depsAname[@]/#/aur/})
- lname=$(GetLength ${depsArepo[@]} ${repodepsSrepo[@]} "$straurname" "$strreponame")
- lver=$(GetLength ${depsQver[@]} ${depsAver[@]} ${repodepsQver[@]} ${repodepsSver[@]} "$stroldver" "$strnewver")
+ depsArepo=("${depsAname[@]/#/aur/}")
+ lname="$(GetLength "${depsArepo[@]}" "${repodepsSrepo[@]}" "$straurname" "$strreponame")"
+ lver="$(GetLength "${depsQver[@]}" "${depsAver[@]}" "${repodepsQver[@]}" "${repodepsSver[@]}" "$stroldver" "$strnewver")"
lsize=$(GetLength "$strsize")
# local version column cleanup
@@ -1055,7 +1048,7 @@ Prompt() {
printf "%-${lname}s ${colorR}%-${lver}s${reset} ${colorG}%-${lver}s${reset} %${lsize}s\n" "${depsArepo[$i]}" "${depsQver[$i]}" "${depsAver[$i]}" "${depsAcached[$i]}";
done
- if [[ -n "${repodepspkgs[@]}" ]]; then
+ if [[ -n "${repodepspkgs[*]}" ]]; then
for i in "${!repodepspkgs[@]}"; do
binarysize[$i]=$(awk '{ printf("%.2f\n", $1/$2) }' <<< "${binaryksize[$i]} 1048576")
done
@@ -1073,10 +1066,10 @@ Prompt() {
repodepspkgsver="${repodepspkgsver}${repodepspkgs[$i]}-${repodepsSver[$i]} "
done
printf "\n${colorW}%-16s${reset} %s\n" $"AUR Packages (${#deps[@]})" "$depsver"
- [[ -n "${repodepspkgs[@]}" ]] && printf "${colorW}%-16s${reset} %s\n" $"Repo Packages (${#repodepspkgs[@]})" "$repodepspkgsver"
+ [[ -n "${repodepspkgs[*]}" ]] && printf "${colorW}%-16s${reset} %s\n" $"Repo Packages (${#repodepspkgs[@]})" "$repodepspkgsver"
fi
- if [[ -n "${repodepspkgs[@]}" ]]; then
+ if [[ -n "${repodepspkgs[*]}" ]]; then
strrepodlsize=$"Repo Download Size:"; strrepoinsize=$"Repo Installed Size:"; strsumk=$"$sumk MiB"; strsumm=$"$summ MiB"
lreposizelabel=$(GetLength "$strrepodlsize" "$strrepoinsize")
lreposize=$(GetLength "$strsumk" "$strsumm")
@@ -1085,26 +1078,24 @@ Prompt() {
fi
echo
- [[ $installpkg ]] && action=$"installation" || action=$"download"
- if ! Proceed "y" $"Proceed with $action?"; then
- exit
- fi
+ [[ "$installpkg" ]] && action=$"installation" || action=$"download"
+ Proceed "y" $"Proceed with $action?" || exit
}
DownloadPkgs() {
- local i errgit
+ local i
# global basepkgs
Note "i" $"${colorW}Retrieving package(s)...${reset}"
- GetPkgbase $@
+ GetPkgbase "$@"
# no results check
- if [[ -z "${basepkgs[@]}" ]]; then
+ if [[ -z "${basepkgs[*]}" ]]; then
Note "e" $"no results found"
return
fi
# reset
- for i in ${basepkgs[@]}; do
+ for i in "${basepkgs[@]}"; do
cd "$clonedir" || exit 1
if [[ -d "$i" ]]; then
cd "$clonedir/$i" || exit 1
@@ -1120,18 +1111,17 @@ DownloadPkgs() {
}
EditPkgs() {
- local viewed timestamp i j erreditpkg action
+ local viewed i j erreditpkg action
# global cachedpkgs installscripts editor
- [[ $noedit ]] && return
+ [[ "$noedit" ]] && return
unset viewed
for i in "$@"; do
- [[ " ${cachedpkgs[@]} " =~ " $i " ]] && continue
+ [[ " ${cachedpkgs[*]} " =~ " $i " ]] && continue
cd "$clonedir/$i" || exit 1
- unset timestamp
- GetInstallScripts $i
- if [[ ! $edit ]]; then
- if [[ ! $displaybuildfiles = none ]]; then
- if [[ $displaybuildfiles = diff && -e ".git/HEAD.prev" ]]; then
+ GetInstallScripts "$i"
+ if [[ ! "$edit" ]]; then
+ if [[ ! "$displaybuildfiles" = none ]]; then
+ if [[ "$displaybuildfiles" = diff && -e ".git/HEAD.prev" ]]; then
# show diff
diffcmd="git diff --no-ext-diff $(cut -f1 .git/HEAD.prev) -- . ':!\.SRCINFO'"
if [[ -n "$(eval "$diffcmd")" ]]; then
@@ -1139,7 +1129,7 @@ EditPkgs() {
eval "$diffcmd"
Note "i" $"${colorW}$i${reset} build files diff viewed"
viewed='true'
- (($? > 0)) && erreditpkg+=($i)
+ (($? > 0)) && erreditpkg+=("$i")
fi
else
Note "w" $"${colorW}$i${reset} build files are up-to-date -- skipping"
@@ -1148,19 +1138,19 @@ EditPkgs() {
# show pkgbuild
if Proceed "y" $"View $i PKGBUILD?"; then
if [[ -e "PKGBUILD" ]]; then
- $editor "PKGBUILD" && Note "i" $"${colorW}$i${reset} PKGBUILD viewed"
- (($? > 0)) && erreditpkg+=($i)
+ "$editor" "PKGBUILD" && Note "i" $"${colorW}$i${reset} PKGBUILD viewed"
+ (($? > 0)) && erreditpkg+=("$i")
else
Note "e" $"Could not open ${colorW}$i${reset} PKGBUILD"
fi
fi
# show install script
- if [[ -n "${installscripts[@]}" ]]; then
+ if [[ -n "${installscripts[*]}" ]]; then
for j in "${installscripts[@]}"; do
if Proceed "y" $"View $j script?"; then
if [[ -e "$j" ]]; then
- $editor "$j" && Note "i" $"${colorW}$j${reset} script viewed"
- (($? > 0)) && erreditpkg+=($i)
+ "$editor" "$j" && Note "i" $"${colorW}$j${reset} script viewed"
+ (($? > 0)) && erreditpkg+=("$i")
else
Note "e" $"Could not open ${colorW}$j${reset} script"
fi
@@ -1172,16 +1162,16 @@ EditPkgs() {
else
# show pkgbuild and install script
if [[ -e "PKGBUILD" ]]; then
- $editor "PKGBUILD" && Note "i" $"${colorW}$i${reset} PKGBUILD viewed"
- (($? > 0)) && erreditpkg+=($i)
+ "$editor" "PKGBUILD" && Note "i" $"${colorW}$i${reset} PKGBUILD viewed"
+ (($? > 0)) && erreditpkg+=("$i")
else
Note "e" $"Could not open ${colorW}$i${reset} PKGBUILD"
fi
- if [[ -n "${installscripts[@]}" ]]; then
+ if [[ -n "${installscripts[*]}" ]]; then
for j in "${installscripts[@]}"; do
if [[ -e "$j" ]]; then
- $editor "$j" && Note "i" $"${colorW}$j${reset} script viewed"
- (($? > 0)) && erreditpkg+=($i)
+ "$editor" "$j" && Note "i" $"${colorW}$j${reset} script viewed"
+ (($? > 0)) && erreditpkg+=("$i")
else
Note "e" $"Could not open ${colorW}$j${reset} script"
fi
@@ -1190,18 +1180,16 @@ EditPkgs() {
fi
done
- if [[ -n "${erreditpkg[@]}" ]]; then
+ if [[ -n "${erreditpkg[*]}" ]]; then
for i in "${erreditpkg[@]}"; do
Note "f" $"${colorW}$i${reset} errored on exit"
done
exit 1
fi
- if [[ $displaybuildfiles = diff && $viewed = true ]]; then
- [[ $installpkg ]] && action=$"installation" || action=$"download"
- if ! Proceed "y" $"Proceed with $action?"; then
- exit
- fi
+ if [[ "$displaybuildfiles" = diff && "$viewed" = true ]]; then
+ [[ "$installpkg" ]] && action=$"installation" || action=$"download"
+ Proceed "y" $"Proceed with $action?" || exit
fi
}
@@ -1211,43 +1199,43 @@ MakePkgs() {
# global deps basepkgs sudoloop pkgsbase pkgsdeps aurpkgs aurdepspkgs depsAver builtpkg errmakepkg repoprovidersconflictingpkgs aurprovidersconflictingpkgs json
# download
- DownloadPkgs ${deps[@]}
- EditPkgs ${basepkgs[@]}
+ DownloadPkgs "${deps[@]}"
+ EditPkgs "${basepkgs[@]}"
# current orphan and optional packages
- oldorphanpkgs=($($pacmanbin -Qdtq))
- oldoptionalpkgs=($($pacmanbin -Qdttq))
+ oldorphanpkgs=($("$pacmanbin" -Qdtq))
+ oldoptionalpkgs=($("$pacmanbin" -Qdttq))
oldoptionalpkgs=($(grep -xvf <(printf '%s\n' "${oldorphanpkgs[@]}") <(printf '%s\n' "${oldoptionalpkgs[@]}")))
# initialize sudo
- if sudo -n $pacmanbin -V > /dev/null || sudo -v; then
- [[ $sudoloop = true ]] && SudoV &
+ if sudo -n "$pacmanbin" -V > /dev/null || sudo -v; then
+ [[ "$sudoloop" = true ]] && SudoV &
fi
# split packages support
for i in "${!pkgsbase[@]}"; do
for j in "${!deps[@]}"; do
- [[ "${pkgsbase[$i]}" = "${pkgsbase[$j]}" ]] && [[ ! " ${pkgsdeps[@]} " =~ " ${deps[$j]} " ]] && pkgsdeps+=(${deps[$j]})
+ [[ "${pkgsbase[$i]}" = "${pkgsbase[$j]}" ]] && [[ ! " ${pkgsdeps[*]} " =~ " ${deps[$j]} " ]] && pkgsdeps+=(${deps[$j]})
done
pkgsdeps+=("#")
done
- pkgsdeps=($(sed 's/ # /\n/g' <<< ${pkgsdeps[@]} | tr -d '#' | sed '/^ $/d' | tr ' ' ',' | sed 's/^,//g;s/,$//g'))
+ pkgsdeps=($(sed 's/ # /\n/g' <<< "${pkgsdeps[@]}" | tr -d '#' | sed '/^ $/d' | tr ' ' ',' | sed 's/^,//g;s/,$//g'))
# reverse deps order
- basepkgs=($(awk '{for (i=NF;i>=1;i--) print $i}' <<< ${basepkgs[@]} | awk -F "\n" '{print}'))
- pkgsdeps=($(awk '{for (i=NF;i>=1;i--) print $i}' <<< ${pkgsdeps[@]} | awk -F "\n" '{print}'))
+ basepkgs=($(awk '{for (i=NF;i>=1;i--) print $i}' <<< "${basepkgs[@]}" | awk -F "\n" '{print}'))
+ pkgsdeps=($(awk '{for (i=NF;i>=1;i--) print $i}' <<< "${pkgsdeps[@]}" | awk -F "\n" '{print}'))
# integrity check
for i in "${!basepkgs[@]}"; do
# get split packages list
- pkgsdepslist=($(awk -F "," '{for (k=1;k<=NF;k++) print $k}' <<< ${pkgsdeps[$i]}))
+ pkgsdepslist=($(awk -F "," '{for (k=1;k<=NF;k++) print $k}' <<< "${pkgsdeps[$i]}"))
# cache check
unset builtpkg
- if [[ -z "$(grep -E "\-(bzr|git|hg|svn|daily.*|nightly.*)$" <<< ${basepkgs[$i]})" ]]; then
+ if ! grep -qE "\-(bzr|git|hg|svn|daily.*|nightly.*)$" <<< "${basepkgs[$i]}"; then
for j in "${pkgsdepslist[@]}"; do
depsAver="$(GetJson "$json" "Version" "$j")"
- [[ $PKGDEST && ! $rebuild ]] && GetBuiltPkg "$j-$depsAver" "$PKGDEST"
+ [[ "$PKGDEST" && ! "$rebuild" ]] && GetBuiltPkg "$j-$depsAver" "$PKGDEST"
done
fi
@@ -1255,32 +1243,32 @@ MakePkgs() {
unset vcsclients
vcsclients=($(grep -E "makedepends = (bzr|git|mercurial|subversion)$" "$clonedir/${basepkgs[$i]}/.SRCINFO" | awk -F " " '{print $NF}'))
for j in "${vcsclients[@]}"; do
- if [[ ! "${vcschecked[@]}" =~ "$j" ]]; then
- [[ -z "$(expac -Qs '%n' "^$j$")" ]] && sudo $pacmanbin -S $j --asdeps --noconfirm
+ if [[ ! "${vcschecked[*]}" =~ "$j" ]]; then
+ [[ -z "$(expac -Qs '%n' "^$j$")" ]] && sudo "$pacmanbin" -S "$j" --asdeps --noconfirm
vcschecked+=($j)
fi
done
- if [[ ! $builtpkg || $rebuild ]]; then
+ if [[ ! "$builtpkg" || "$rebuild" ]]; then
cd "$clonedir/${basepkgs[$i]}" || exit 1
Note "i" $"Checking ${colorW}${pkgsdeps[$i]}${reset} integrity..."
- if [[ $silent = true ]]; then
- makepkg -f --verifysource ${makeopts[@]} &>/dev/null
+ if [[ "$silent" = true ]]; then
+ makepkg -f --verifysource "${makeopts[@]}" &>/dev/null
else
- makepkg -f --verifysource ${makeopts[@]}
+ makepkg -f --verifysource "${makeopts[@]}"
fi
(($? > 0)) && errmakepkg+=(${pkgsdeps[$i]})
# extraction, prepare and pkgver update
Note "i" $"Preparing ${colorW}${pkgsdeps[$i]}${reset}..."
- if [[ $silent = true ]]; then
- makepkg -od --skipinteg ${makeopts[@]} &>/dev/null
+ if [[ "$silent" = true ]]; then
+ makepkg -od --skipinteg "${makeopts[@]}" &>/dev/null
else
- makepkg -od --skipinteg ${makeopts[@]}
+ makepkg -od --skipinteg "${makeopts[@]}"
fi
(($? > 0)) && errmakepkg+=(${pkgsdeps[$i]})
fi
done
- if [[ -n "${errmakepkg[@]}" ]]; then
+ if [[ -n "${errmakepkg[*]}" ]]; then
for i in "${errmakepkg[@]}"; do
Note "f" $"failed to verify integrity or prepare ${colorW}$i${reset} package"
done
@@ -1297,29 +1285,29 @@ MakePkgs() {
touch "$tmpdir/pacaur.build.lck"
# install provider packages and repo conflicting packages that makepkg --noconfirm cannot handle
- if [[ -n "${repoprovidersconflictingpkgs[@]}" ]]; then
+ if [[ -n "${repoprovidersconflictingpkgs[*]}" ]]; then
Note "i" $"Installing ${colorW}${repoprovidersconflictingpkgs[@]}${reset} dependencies..."
- sudo $pacmanbin -S ${repoprovidersconflictingpkgs[@]} --ask 36 --asdeps --noconfirm
+ sudo "$pacmanbin" -S "${repoprovidersconflictingpkgs[@]}" --ask 36 --asdeps --noconfirm
fi
# main
for i in "${!basepkgs[@]}"; do
# get split packages list
- pkgsdepslist=($(awk -F "," '{for (k=1;k<=NF;k++) print $k}' <<< ${pkgsdeps[$i]}))
+ 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)}'))
- aurdevelpkgsAver=${aurdevelpkgsAver[0]}
+ aurdevelpkgsAver="${aurdevelpkgsAver[0]}"
# build devel if necessary only (supported protocols only)
- if [[ -n "$(grep -E "\-(bzr|git|hg|svn|daily.*|nightly.*)$" <<< ${basepkgs[$i]})" ]]; then
+ if grep -qE "\-(bzr|git|hg|svn|daily.*|nightly.*)$" <<< "${basepkgs[$i]}"; then
# check split packages update
unset basepkgsupdate checkpkgsdepslist
for j in "${pkgsdepslist[@]}"; do
aurdevelpkgsQver=$(expac -Qs '%v' "^$j$" | head -1)
- if [[ -n $aurdevelpkgsQver && $(vercmp "$aurdevelpkgsQver" "$aurdevelpkgsAver") -ge 0 ]] && [[ $needed && ! $rebuild ]]; then
+ if [[ -n "$aurdevelpkgsQver" && "$(vercmp "$aurdevelpkgsQver" "$aurdevelpkgsAver")" -ge 0 ]] && [[ "$needed" && ! "$rebuild" ]]; then
Note "w" $"${colorW}$j${reset} is up-to-date -- skipping"
continue
else
@@ -1327,8 +1315,8 @@ MakePkgs() {
checkpkgsdepslist+=($j)
fi
done
- if [[ $basepkgsupdate ]]; then
- pkgsdepslist=(${checkpkgsdepslist[@]})
+ if [[ "$basepkgsupdate" ]]; then
+ pkgsdepslist=("${checkpkgsdepslist[@]}")
else
continue
fi
@@ -1338,16 +1326,16 @@ MakePkgs() {
for j in "${pkgsdepslist[@]}"; do
unset builtpkg
depsAver="$aurdevelpkgsAver"
- [[ $PKGDEST && ! $rebuild ]] && GetBuiltPkg "$j-$depsAver" "$PKGDEST"
- if [[ $builtpkg ]]; then
- if [[ " ${aurdepspkgs[@]} " =~ " $j " || $installpkg ]]; then
+ [[ "$PKGDEST" && ! "$rebuild" ]] && GetBuiltPkg "$j-$depsAver" "$PKGDEST"
+ if [[ "$builtpkg" ]]; then
+ if [[ " ${aurdepspkgs[*]} " =~ " $j " || "$installpkg" ]]; then
Note "i" $"Installing ${colorW}$j${reset} cached package..."
- sudo $pacmanbin -U $builtpkg --ask 36 ${pacopts[@]/--quiet} --noconfirm
- [[ ! " ${aurpkgs[@]} " =~ " $j " ]] && sudo $pacmanbin -D $j --asdeps ${pacopts[@]} &>/dev/null
+ sudo "$pacmanbin" -U "$builtpkg" --ask 36 "${pacopts[@]/--quiet}" --noconfirm
+ [[ ! " ${aurpkgs[*]} " =~ " $j " ]] && sudo "$pacmanbin" -D "$j" --asdeps "${pacopts[@]}" &>/dev/null
else
Note "w" $"Package ${colorW}$j${reset} already available in cache"
fi
- pkgsdeps=($(tr ' ' '\n' <<< ${pkgsdeps[@]} | sed "s/^$j,//g;s/,$j$//g;s/,$j,/,/g;s/^$j$/#/g"))
+ pkgsdeps=($(tr ' ' '\n' <<< "${pkgsdeps[@]}" | sed "s/^$j,//g;s/,$j$//g;s/,$j,/,/g;s/^$j$/#/g"))
continue
fi
done
@@ -1357,25 +1345,25 @@ MakePkgs() {
Note "i" $"Building ${colorW}${pkgsdeps[$i]}${reset} package(s)..."
# install then remove binary deps
- makeopts=(${makeopts[@]/-r/})
+ makeopts=("${makeopts[@]/-r/}")
- if [[ ! $installpkg ]]; then
+ if [[ ! "$installpkg" ]]; then
unset isaurdeps
for j in "${pkgsdepslist[@]}"; do
- [[ " ${aurdepspkgs[@]} " =~ " $j " ]] && isaurdeps=true
+ [[ " ${aurdepspkgs[*]} " =~ " $j " ]] && isaurdeps=true
done
- [[ $isaurdeps != true ]] && makeopts+=("-r")
+ [[ "$isaurdeps" != true ]] && makeopts+=("-r")
fi
- if [[ $silent = true ]]; then
- makepkg -sefc ${makeopts[@]} --noconfirm &>/dev/null
+ if [[ "$silent" = true ]]; then
+ makepkg -sefc "${makeopts[@]}" --noconfirm &>/dev/null
else
- makepkg -sefc ${makeopts[@]} --noconfirm
+ makepkg -sefc "${makeopts[@]}" --noconfirm
fi
# error check
if (($? > 0)); then
- errmakepkg+=(${pkgsdeps[$i]})
+ errmakepkg+=("${pkgsdeps[$i]}")
continue # skip install
fi
@@ -1389,35 +1377,35 @@ MakePkgs() {
else
GetBuiltPkg "$j-$depsAver" "$clonedir/${basepkgs[$i]}"
fi
- [[ " ${aurdepspkgs[@]} " =~ " $j " ]] && builtdepspkgs+=($builtpkg) || builtpkgs+=($builtpkg)
+ [[ " ${aurdepspkgs[*]} " =~ " $j " ]] && builtdepspkgs+=($builtpkg) || builtpkgs+=($builtpkg)
done
# install
- if [[ $installpkg || -z "${builtpkgs[@]}" ]]; then
+ if [[ $installpkg || -z "${builtpkgs[*]}" ]]; then
Note "i" $"Installing ${colorW}${pkgsdeps[$i]}${reset} package(s)..."
- sudo $pacmanbin -U ${builtdepspkgs[@]} ${builtpkgs[@]} --ask 36 ${pacopts[@]/--quiet} --noconfirm
+ sudo "$pacmanbin" -U "${builtdepspkgs[@]}" "${builtpkgs[@]}" --ask 36 "${pacopts[@]/--quiet}" --noconfirm
fi
# set dep status
if [[ $installpkg ]]; then
for j in "${pkgsdepslist[@]}"; do
- [[ ! " ${aurpkgs[@]} " =~ " $j " ]] && sudo $pacmanbin -D $j --asdeps &>/dev/null
- [[ " ${pacopts[@]} " =~ --(asdep|asdeps) ]] && sudo $pacmanbin -D $j --asdeps &>/dev/null
- [[ " ${pacopts[@]} " =~ --(asexp|asexplicit) ]] && sudo $pacmanbin -D $j --asexplicit &>/dev/null
+ [[ ! " ${aurpkgs[*]} " =~ " $j " ]] && sudo "$pacmanbin" -D "$j" --asdeps &>/dev/null
+ [[ " ${pacopts[*]} " =~ --(asdep|asdeps) ]] && sudo "$pacmanbin" -D "$j" --asdeps &>/dev/null
+ [[ " ${pacopts[*]} " =~ --(asexp|asexplicit) ]] && sudo "$pacmanbin" -D "$j" --asexplicit &>/dev/null
done
fi
done
# remove AUR deps
if [[ ! $installpkg ]]; then
- [[ -n "${aurdepspkgs[@]}" ]] && aurdepspkgs=($(expac -Q '%n' "${aurdepspkgs[@]}"))
- if [[ -n "${aurdepspkgs[@]}" ]]; then
+ [[ -n "${aurdepspkgs[*]}" ]] && aurdepspkgs=($(expac -Q '%n' "${aurdepspkgs[@]}"))
+ if [[ -n "${aurdepspkgs[*]}" ]]; then
Note "i" $"Removing installed AUR dependencies..."
- sudo $pacmanbin -Rsn ${aurdepspkgs[@]} --noconfirm
+ sudo "$pacmanbin" -Rsn "${aurdepspkgs[@]}" --noconfirm
fi
# readd removed conflicting packages
- [[ -n "${aurconflictingpkgsrm[@]}" ]] && sudo $pacmanbin -S ${aurconflictingpkgsrm[@]} --ask 36 --asdeps --needed --noconfirm
- [[ -n "${repoconflictingpkgsrm[@]}" ]] && sudo $pacmanbin -S ${repoconflictingpkgsrm[@]} --ask 36 --asdeps --needed --noconfirm
+ [[ -n "${aurconflictingpkgsrm[*]}" ]] && sudo "$pacmanbin" -S "${aurconflictingpkgsrm[@]}" --ask 36 --asdeps --needed --noconfirm
+ [[ -n "${repoconflictingpkgsrm[*]}" ]] && sudo "$pacmanbin" -S "${repoconflictingpkgsrm[@]}" --ask 36 --asdeps --needed --noconfirm
fi
# remove locks
@@ -1425,12 +1413,12 @@ MakePkgs() {
rm -f "$tmpdir/pacaur.sudov.lck"
# new orphan and optional packages check
- orphanpkgs=($($pacmanbin -Qdtq))
+ orphanpkgs=($("$pacmanbin" -Qdtq))
neworphanpkgs=($(grep -xvf <(printf '%s\n' "${oldorphanpkgs[@]}") <(printf '%s\n' "${orphanpkgs[@]}")))
for i in "${neworphanpkgs[@]}"; do
Note "w" $"${colorW}$i${reset} is now an ${colorY}orphan${reset} package"
done
- optionalpkgs=($($pacmanbin -Qdttq))
+ optionalpkgs=($("$pacmanbin" -Qdttq))
optionalpkgs=($(grep -xvf <(printf '%s\n' "${orphanpkgs[@]}") <(printf '%s\n' "${optionalpkgs[@]}")))
newoptionalpkgs=($(grep -xvf <(printf '%s\n' "${oldoptionalpkgs[@]}") <(printf '%s\n' "${optionalpkgs[@]}")))
for i in "${newoptionalpkgs[@]}"; do
@@ -1438,7 +1426,7 @@ MakePkgs() {
done
# makepkg and install failure check
- if [[ -n "${errmakepkg[@]}" || -n "${errinstall[@]}" ]]; then
+ if [[ -n "${errmakepkg[*]}" || -n "${errinstall[*]}" ]]; then
for i in "${errmakepkg[@]}"; do
Note "f" $"failed to build ${colorW}$i${reset} package(s)"
done
@@ -1453,85 +1441,85 @@ CheckUpdates() {
# global aur repo
if [[ ! "$aur" ]]; then
- $pacmanbin ${pacmanarg[@]} ${pacopts[@]}; exitrepo=$?
+ "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}"; exitrepo=$?
fi
GetIgnoredPkgs
- if [[ ! "$repo" && ! "$pacn" && $fallback = true ]]; then
- [[ -z "${pkgs[@]}" ]] && foreignpkgs=($($pacmanbin -Qmq)) || foreignpkgs=(${pkgs[@]})
- if [[ -n "${foreignpkgs[@]}" ]]; then
- SetJson ${foreignpkgs[@]}
+ if [[ ! "$repo" && ! "$pacn" && "$fallback" = true ]]; then
+ [[ -z "${pkgs[*]}" ]] && foreignpkgs=($("$pacmanbin" -Qmq)) || foreignpkgs=(${pkgs[@]})
+ if [[ -n "${foreignpkgs[*]}" ]]; then
+ SetJson "${foreignpkgs[@]}"
aurpkgsAname=($(GetJson "$json" "Name"))
aurpkgsAver=($(GetJson "$json" "Version"))
- aurpkgsQver=($(expac -Q '%v' ${aurpkgsAname[@]}))
+ aurpkgsQver=($(expac -Q '%v' "${aurpkgsAname[@]}"))
for i in "${!aurpkgsAname[@]}"; do
- [[ $(vercmp "${aurpkgsAver[$i]}" "${aurpkgsQver[$i]}") -gt 0 ]] && aurpkgsQood+=(${aurpkgsAname[$i]});
+ [[ "$(vercmp "${aurpkgsAver[$i]}" "${aurpkgsQver[$i]}")" -gt 0 ]] && aurpkgsQood+=("${aurpkgsAname[$i]}");
done
fi
# add devel packages
- if [[ $devel ]]; then
- if [[ ! $needed ]]; then
+ if [[ "$devel" ]]; then
+ if [[ ! "$needed" ]]; then
for i in "${foreignpkgs[@]}"; do
- [[ -n "$(grep -E "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< $i)" ]] && aurpkgsQood+=($i)
+ grep -qE "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< "$i" && aurpkgsQood+=("$i")
done
else
- foreignpkgsbase=($(expac -Q '%n %e' ${foreignpkgs[@]} | awk '{if ($2 == "(null)") print $1; else print $2}'))
- foreignpkgsnobase=($(expac -Q '%n' ${foreignpkgs[@]}))
+ 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 [[ -n "$(grep -E "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< ${foreignpkgsbase[$i]})" ]]; then
+ if grep -qE "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< "${foreignpkgsbase[$i]}"; then
[[ ! -d "$clonedir/${foreignpkgsbase[$i]}" ]] && DownloadPkgs "${foreignpkgsbase[$i]}" &>/dev/null
cd "$clonedir/${foreignpkgsbase[$i]}"
# silent extraction and pkgver update only
makepkg -od --noprepare --skipinteg &>/dev/null
# retrieve updated version
aurdevelpkgsAver=($(makepkg --packagelist | awk -F "-" '{print $(NF-2)"-"$(NF-1)}'))
- aurdevelpkgsAver=${aurdevelpkgsAver[0]}
- aurdevelpkgsQver=$(expac -Qs '%v' "^${foreignpkgsbase[$i]}$" | head -1)
- if [[ $(vercmp "$aurdevelpkgsQver" "$aurdevelpkgsAver") -ge 0 ]]; then
+ aurdevelpkgsAver="${aurdevelpkgsAver[0]}"
+ aurdevelpkgsQver="$(expac -Qs '%v' "^${foreignpkgsbase[$i]}$" | head -1)"
+ if [[ "$(vercmp "$aurdevelpkgsQver" "$aurdevelpkgsAver")" -ge 0 ]]; then
continue
else
- aurpkgsQood+=(${foreignpkgsnobase[$i]})
- aurpkgsQoodAver+=($aurdevelpkgsAver)
+ aurpkgsQood+=("${foreignpkgsnobase[$i]}")
+ aurpkgsQoodAver+=("$aurdevelpkgsAver")
fi
fi
done
fi
fi
- if [[ -n "${aurpkgsQood[@]}" && ! $quiet ]]; then
- SetJson ${aurpkgsQood[@]}
+ if [[ -n "${aurpkgsQood[*]}" && ! "$quiet" ]]; then
+ SetJson "${aurpkgsQood[@]}"
aurpkgsAname=($(GetJson "$json" "Name"))
aurpkgsAname=($(expac -Q '%n' "${aurpkgsAname[@]}"))
aurpkgsAver=($(GetJson "$json" "Version"))
aurpkgsQver=($(expac -Q '%v' "${aurpkgsAname[@]}"))
for i in "${!aurpkgsAname[@]}"; do
- if [[ -n "$(grep -E "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< ${aurpkgsAname[$i]})" ]]; then
- [[ ! $needed ]] && aurpkgsAver[$i]=$"latest" || aurpkgsAver[$i]=${aurpkgsQoodAver[$i]}
+ if grep -qE "\-(cvs|svn|git|hg|bzr|darcs|daily.*|nightly.*)$" <<< "${aurpkgsAname[$i]}"; then
+ [[ ! "$needed" ]] && aurpkgsAver[$i]=$"latest" || aurpkgsAver[$i]="${aurpkgsQoodAver[$i]}"
fi
done
fi
fi
- if [[ -n "${aurpkgsQood[@]}" && $fallback = true ]]; then
+ if [[ -n "${aurpkgsQood[*]}" && "$fallback" = true ]]; then
exitaur=$?
- if [[ ! $quiet ]]; then
+ if [[ ! "$quiet" ]]; then
for i in "${!aurpkgsAname[@]}"; do
- [[ "${ignoredpkgs[@]}" =~ "${aurpkgsAname[$i]}" ]] && aurpkgsQignore[$i]=$"[ignored]"
+ [[ "${ignoredpkgs[*]}" =~ "${aurpkgsAname[$i]}" ]] && aurpkgsQignore[$i]=$"[ignored]"
printf "${colorW}%s${reset} ${colorG}%s${reset} -> ${colorG}%s${reset} %s\n" "${aurpkgsAname[$i]}" "${aurpkgsQver[$i]}" "${aurpkgsAver[$i]}" "${aurpkgsQignore[$i]}"
done
else
- tr ' ' '\n' <<< ${aurpkgsQood[@]} | sort -u
+ tr ' ' '\n' <<< "${aurpkgsQood[@]}" | sort -u
fi
fi
# exit code
if [[ -n "$exitrepo" && -n "$exitaur" ]]; then
- [[ $exitrepo -eq 0 || $exitaur -eq 0 ]] && exit 0 || exit 1
+ [[ "$exitrepo" -eq 0 || "$exitaur" -eq 0 ]] && exit 0 || exit 1
elif [[ -n "$exitrepo" ]]; then
- [[ $exitrepo -eq 0 ]] && exit 0 || exit 1
+ [[ "$exitrepo" -eq 0 ]] && exit 0 || exit 1
elif [[ -n "$exitaur" ]]; then
- [[ $exitaur -eq 0 ]] && exit 0 || exit 1
+ [[ "$exitaur" -eq 0 ]] && exit 0 || exit 1
else
exit 1
fi
@@ -1539,17 +1527,16 @@ CheckUpdates() {
CleanCache() {
cachedir=($(pacman-conf CacheDir))
- [[ $cachedir ]] && cachedir=${cachedir[@]%/} && PKGDEST=${PKGDEST%/}
-
- if [[ $PKGDEST && ! " ${cachedir[@]} " =~ " $PKGDEST " ]]; then
- [[ $ccount -eq 1 ]] && printf "\n%s\n %s\n" $"Packages to keep:" $"All locally installed packages"
+ [[ "${cachedir[*]}" ]] && cachedir=("${cachedir[@]%/}") && PKGDEST="${PKGDEST%/}"
+ if [[ "$PKGDEST" && ! " ${cachedir[*]} " =~ " $PKGDEST " ]]; then
+ [[ "$ccount" -eq 1 ]] && printf "\n%s\n %s\n" $"Packages to keep:" $"All locally installed packages"
printf "\n%s %s\n" $"AUR cache directory:" "$PKGDEST"
- if [[ $ccount -eq 1 ]]; then
+ if [[ "$ccount" -eq 1 ]]; then
if Proceed "y" $"Do you want to remove all other packages from AUR cache?"; then
printf "%s\n" $"removing old packages from cache..."
- for i in $(ls $PKGDEST | sed "s%\(.*\)-.*%\1%g" ); do
- pkgname=$(sed "s%\(.*\)-.*-.*%\1%g" <<< $i)
- [[ $i != $(expac -Q '%n-%v' "$pkgname") ]] && rm "$PKGDEST"/$i-*
+ for i in $(ls "$PKGDEST" | sed "s%\(.*\)-.*%\1%g"); do
+ pkgname="$(sed "s%\(.*\)-.*-.*%\1%g" <<< "$i")"
+ [[ "$i" != "$(expac -Q '%n-%v' "$pkgname")" ]] && rm "$PKGDEST"/"$i"-*
done
fi
else
@@ -1560,10 +1547,10 @@ CleanCache() {
fi
fi
- if [[ $SRCDEST ]]; then
- [[ $ccount -eq 1 ]] && printf "\n%s\n %s\n" $"Sources to keep:" $"All development packages sources"
+ if [[ "$SRCDEST" ]]; then
+ [[ "$ccount" -eq 1 ]] && printf "\n%s\n %s\n" $"Sources to keep:" $"All development packages sources"
printf "\n%s %s\n" $"AUR source cache directory:" "$SRCDEST"
- if [[ $ccount -eq 1 ]]; then
+ if [[ "$ccount" -eq 1 ]]; then
if Proceed "y" $"Do you want to remove all non development files from AUR source cache?"; then
printf "%s\n" $"removing non development files from source cache..."
rm -f "$SRCDEST"/* &>/dev/null
@@ -1576,20 +1563,20 @@ CleanCache() {
fi
fi
if [[ -d "$clonedir" ]]; then
- cd $clonedir
- if [[ $ccount -eq 1 ]]; then
- if [[ -z "${pkgs[@]}" ]]; then
+ cd "$clonedir"
+ if [[ "$ccount" -eq 1 ]]; then
+ if [[ -z "${pkgs[*]}" ]]; then
printf "\n%s\n %s\n" $"Clones to keep:" $"All locally installed clones"
else
printf "\n%s\n %s\n" $"Clones to keep:" $"All other locally installed clones"
fi
fi
printf "\n%s %s\n" $"AUR clone directory:" "$clonedir"
- if [[ $ccount -eq 1 ]]; then
- foreignpkgsbase=($(expac -Q '%n %e' $($pacmanbin -Qmq) | awk '{if ($2 == "(null)") print $1; else print $2}'))
+ if [[ "$ccount" -eq 1 ]]; then
+ foreignpkgsbase=($(expac -Q '%n %e' "$("$pacmanbin" -Qmq)" | awk '{if ($2 == "(null)") print $1; else print $2}'))
# get target
- if [[ -n "${pkgs[@]}" ]]; then
- pkgsbase=($(expac -Q %e ${pkgs[@]}))
+ if [[ -n "${pkgs[*]}" ]]; then
+ pkgsbase=($(expac -Q %e "${pkgs[@]}"))
aurpkgsbase=($(grep -xf <(printf '%s\n' "${pkgsbase[@]}") <(printf '%s\n' "${foreignpkgsbase[@]}")))
if Proceed "y" $"Do you want to remove ${aurpkgsbase[*]} clones from AUR clone directory?"; then
printf "%s\n\n" $"removing uninstalled clones from AUR clone cache..."
@@ -1601,10 +1588,10 @@ 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 clone in *; do
- [[ -d "$clonedir/$clone" && ! " ${foreignpkgsbase[@]} " =~ " $clone " ]] && rm -rf "$clonedir/$clone"
+ [[ -d "$clonedir/$clone" && ! " ${foreignpkgsbase[*]} " =~ " $clone " ]] && rm -rf "$clonedir/$clone"
done
fi
- if [[ ! $PKGDEST || ! $SRCDEST ]]; then
+ if [[ ! "$PKGDEST" || ! "$SRCDEST" ]]; then
if Proceed "y" $"Do you want to remove all untracked files from AUR clone directory?"; then
printf "%s\n" $"removing untracked files from AUR clone cache..."
for clone in *; do
@@ -1628,13 +1615,13 @@ CleanCache() {
GetIgnoredPkgs() {
# global ignoredpkgs
ignoredpkgs+=($(pacman-conf IgnorePkg))
- ignoredpkgs=(${ignoredpkgs[@]//,/ })
+ ignoredpkgs=("${ignoredpkgs[@]//,/ }")
}
GetIgnoredGrps() {
# global ignoredgrps
ignoredgrps+=($(pacman-conf IgnoreGroup))
- ignoredgrps=(${ignoredgrps[@]//,/ })
+ ignoredgrps=("${ignoredgrps[@]//,/ }")
}
GetInstallScripts() {
@@ -1643,7 +1630,7 @@ GetInstallScripts() {
[[ ! -d "$clonedir/$1" ]] && return
unset installscriptspath installscripts
installscriptspath=($(find "$clonedir/$1/" -maxdepth 1 -name "*.install"))
- [[ -n "${installscriptspath[@]}" ]] && installscripts=($(basename -a ${installscriptspath[@]}))
+ [[ -n "${installscriptspath[*]}" ]] && installscripts=($(basename -a "${installscriptspath[@]}"))
}
GetBuiltPkg() {
@@ -1651,7 +1638,7 @@ GetBuiltPkg() {
# global builtpkg
# check PKGEXT suffixe first, then default .xz suffixe for repository packages in pacman cache
# and lastly all remaining suffixes in case PKGEXT is locally overridden
- for pkgext in $PKGEXT .pkg.tar.xz .pkg.tar .pkg.tar.gz .pkg.tar.bz2 .pkg.tar.lzo .pkg.tar.lrz .pkg.tar.Z; do
+ for pkgext in "$PKGEXT" .pkg.tar.xz .pkg.tar .pkg.tar.gz .pkg.tar.bz2 .pkg.tar.lzo .pkg.tar.lrz .pkg.tar.Z; do
builtpkg="$2/$1-${CARCH}$pkgext"
[[ ! -f "$builtpkg" ]] && builtpkg="$2/$1-any$pkgext"
[[ -f "$builtpkg" ]] && break;
@@ -1667,19 +1654,19 @@ GetPkgbase() {
pkgsbase+=($(GetJson "$json" "PackageBase" "$i"))
done
for i in "${pkgsbase[@]}"; do
- [[ " ${basepkgs[@]} " =~ " $i " ]] && continue
- basepkgs+=($i)
+ [[ " ${basepkgs[*]} " =~ " $i " ]] && continue
+ basepkgs+=("$i")
done
}
declare -A jsoncache
SetJson() {
- if [[ $# -eq 0 ]]; then
+ if [[ "$#" -eq 0 ]]; then
json="{}"
else
# global json
if [[ -z "${jsoncache[$@]}" ]]; then
- jsoncache[$@]="$(auracle rawinfo -- $@)"
+ jsoncache[$@]="$(auracle rawinfo -- "$@")"
fi
json="${jsoncache[$@]}"
fi
@@ -1688,18 +1675,15 @@ SetJson() {
GetJson() {
local filter="." json="$1" field="$2" pkgname="$3"
- if [[ -n $pkgname ]]; then
- filter="select(.Name == \"$pkgname\")"
- fi
+ [[ "$pkgname" ]] && filter="select(.Name == \"$pkgname\")"
- jq -rM ".results[] | $filter | select(.$field) .$field | if type==\"array\" then .[] else . end" <<< "$json" 2> /dev/null
- [[ $? != "0" ]] && Note "e" $"Failed to parse JSON"
+ jq -rM ".results[] | $filter | select(.$field) .$field | if type==\"array\" then .[] else . end" <<< "$json" 2> /dev/null || Note "e" $"Failed to parse JSON"
}
CheckRequires() {
local Qrequires
- Qrequires=($(expac -Q '%n %D' | grep -E " $@[\+]*[^a-zA-Z0-9_@\.\+-]+" | awk '{print $1}' | tr '\n' ' '))
- if [[ -n "${Qrequires[@]}" ]]; then
+ Qrequires=($(expac -Q '%n %D' | grep -E " $*[\+]*[^a-zA-Z0-9_@\.\+-]+" | awk '{print $1}' | tr '\n' ' '))
+ if [[ -n "${Qrequires[*]}" ]]; then
Note "f" $"failed to prepare transaction (could not satisfy dependencies)"
Note "e" $"${Qrequires[@]}: requires $@"
fi
@@ -1713,28 +1697,36 @@ Proceed() {
[[ "$TERM" = dumb || "$cleancache" ]] && local readline=1
case "$1" in
y) printf "${colorB}%s${reset} ${colorW}%s${reset}" "::" "$2 [$Y/$n] "
- if [[ $noconfirm ]]; then
+ if [[ "$noconfirm" ]]; then
echo
return 0
fi
while true; do
- [[ "$readline" ]] && read -r answer || read -s -r -n 1 answer
- case $answer in
- $Y|$y|'') ret=0; break;;
- $N|$n) ret=1; break;;
+ if [[ "$readline" ]]; then
+ read -r answer
+ else
+ read -s -r -n 1 answer
+ fi
+ case "$answer" in
+ "$Y"|"$y"|'') ret=0; break;;
+ "$N"|"$n") ret=1; break;;
*) [[ "$readline" ]] && ret=1 && break;;
esac
done;;
n) printf "${colorB}%s${reset} ${colorW}%s${reset}" "::" "$2 [$y/$N] "
- if [[ $noconfirm ]]; then
+ if [[ "$noconfirm" ]]; then
echo
return 0
fi
while true; do
- [[ "$readline" ]] && read -r answer || read -s -r -n 1 answer
- case $answer in
- $N|$n|'') ret=0; break;;
- $Y|$y) ret=1; break;;
+ if [[ "$readline" ]]; then
+ read -r answer
+ else
+ read -s -r -n 1 answer
+ fi
+ case "$answer" in
+ "$N"|"$n"|'') ret=0; break;;
+ "$Y"|"$y") ret=1; break;;
*) [[ "$readline" ]] && ret=0 && break;;
esac
done;;
@@ -1755,20 +1747,20 @@ Note() {
GetLength() {
local length=0 i
for i in "$@"; do
- x=${#i}
- [[ $x -gt $length ]] && length=$x
+ x="${#i}"
+ [[ "$x" -gt "$length" ]] && length="$x"
done
- echo $length
+ echo "$length"
}
NothingToDo() {
- [[ -z "$@" ]] && printf "%s\n" $" there is nothing to do" && exit || return 0
+ [[ -z "$*" ]] && printf "%s\n" $" there is nothing to do" && exit || return 0
}
SudoV() {
touch "$tmpdir/pacaur.sudov.lck"
while [[ -e "$tmpdir/pacaur.sudov.lck" ]]; do
- sudo $pacmanbin -V > /dev/null
+ sudo "$pacmanbin" -V > /dev/null
sleep 298
done
}
@@ -1858,120 +1850,125 @@ while true; do
--ignore) ignoredpkgs+=("$2"); shift;;
--color) color="$2"; shift;;
--literal) auropts+=("$1");;
- --@(by|searchby|rsort|sort)) auropts+=("$1=$2"); shift;;
+ --@(by|searchby)) auropts+=("$1=$2"); shift;;
+ --sort) sortorder="ascending"; sortby="$2"; shift;;
+ --rsort) sortorder="descending"; sortby="$2"; shift;;
-d|--nodeps) nodeps=1; makeopts+=("$1"); ((dcount++));;
--assume-installed) assumeinstalled+=("$2"); shift;;
--@(devel|needed|noconfirm|noedit|rebuild)) declare "${1/--}"=1;;
--silent) silent=true; pacopts+=("--quiet"); auropts+=("--quiet") makeopts+=("--log");;
-y|--refresh) [[ ! "$aur" ]] && refresh=1;;
-e) [[ "$pacQ" ]] && pacopts+=("--explicit"); edit=1; [[ "$pac" -eq 0 ]] && operation=edit;;
- -h|--help) [[ "$pac" -ge 1 ]] && unset operation || Usage;;
+ -h|--help) unset operation; [[ "$pac" -eq 0 ]] && Usage;;
-v|--version) [[ ! "$pac" -ge 1 || "$1" = --version ]] && echo "pacaur $version" && exit 0;;
--) shift; break;;
esac
shift
done
+# sorting
+[[ "$sortorder" = ascending ]] && auropts+=("--sort=$sortby")
+[[ "$sortorder" = descending ]] && auropts+=("--rsort=$sortby")
+
# packages
-[[ -n "$@" ]] && pkgs+=("$@")
+[[ -n "$*" ]] && pkgs+=("$@")
# color
if [[ ! "$color" ]]; then
- [[ ! "$(pacman-conf Color)" ]] || [[ "$quiet" && "$search" || $operation = upgrades ]] && color=never || color=auto
+ [[ ! "$(pacman-conf Color)" ]] || [[ "$quiet" && "$search" || "$operation" = upgrades ]] && color=never || color=auto
fi
-pacopts+=("--color=$color") && auropts+=("--color=$color")
+pacopts+=("--color=$color") && auropts+=("--color=$color") && [[ "$color" = never ]] && makeopts+=("--nocolor")
if [[ ! "$color" = never ]]; then
reset="\e[0m"; colorR="\e[1;31m"; colorG="\e[1;32m"; colorY="\e[1;33m"
- colorB="\e[1;34m"; colorM="\e[1;35m"; colorC="\e[1;36m"; colorW="\e[1;39m"
+ colorB="\e[1;34m"; colorM="\e[1;35m"; colorW="\e[1;39m"
fi
# sanity check
[[ "$pac" -gt 1 ]] && Note "e" $"only one operation may be used at a time"
-[[ $operation = sync && ! $search && ! $info && ! $cleancache && "$EUID" -eq 0 ]] && Note "e" $"you cannot perform this operation as root"
-[[ $pacS ]] && [[ $search && $info ]] && Note "e" $"invalid option: '--info' and '--search' may not be used together"
-[[ $pacS ]] && [[ $cleancache ]] && unset search info upgrade
-[[ ! $(command -v "${editor%% *}") ]] && Note "e" $"${colorW}\$VISUAL${reset} and ${colorW}\$EDITOR${reset} environment variables not set or defined ${colorW}editor${reset} not found"
-[[ "$PACMAN" = $(basename "$0") ]] && Note "e" $"you cannot use ${colorW}pacaur${reset} as PACMAN environment variable"
+[[ "$operation" = sync && ! "$search" && ! "$info" && ! "$cleancache" && "$EUID" -eq 0 ]] && Note "e" $"you cannot perform this operation as root"
+[[ "$pacS" ]] && [[ "$search" && "$info" ]] && Note "e" $"invalid option: '--info' and '--search' may not be used together"
+[[ "$pacS" ]] && [[ "$cleancache" ]] && unset search info upgrade
+[[ ! "$(command -v "${editor%% *}")" ]] && Note "e" $"${colorW}\$VISUAL${reset} and ${colorW}\$EDITOR${reset} environment variables not set or defined ${colorW}editor${reset} not found"
+[[ "$PACMAN" = "$(basename "$0")" ]] && Note "e" $"you cannot use ${colorW}pacaur${reset} as PACMAN environment variable"
[[ ! -w "$clonedir" ]] && Note "e" $"${colorW}$clonedir${reset} does not have write permission"
-[[ -z "${pkgs[@]}" ]] && [[ $operation = sync || $operation = edit ]] && [[ ! $refresh && ! $upgrade && ! $cleancache ]] && Note "e" $"no targets specified (use -h for help)"
-[[ -z "${pkgs[@]}" && -n "$(grep -e "-[RU]" <<< ${pacmanarg[@]})" && -z "$(grep -e "-[h]" <<< ${pacmanarg[@]})" ]] && Note "e" $"no targets specified (use -h for help)"
-[[ $repo && $aur ]] && Note "e" $"invalid option: '--repo' and '--aur' may not be used together"
+[[ -z "${pkgs[*]}" ]] && [[ "$operation" = sync || "$operation" = edit ]] && [[ ! "$refresh" && ! "$upgrade" && ! "$cleancache" ]] && Note "e" $"no targets specified (use -h for help)"
+[[ -z "${pkgs[*]}" ]] && grep -qe "-[RU]" <<< "${pacmanarg[@]}" && ! grep -qe "-[h]" <<< "${pacmanarg[@]}" && Note "e" $"no targets specified (use -h for help)"
+[[ "$repo" && "$aur" ]] && Note "e" $"invalid option: '--repo' and '--aur' may not be used together"
# operations
-case $operation in
+case "$operation" in
edit)
# edit (-e) handling
- GetPkgbase ${pkgs[@]}
- EditPkgs ${pkgsbase[@]}
+ GetPkgbase "${pkgs[@]}"
+ EditPkgs "${pkgsbase[@]}"
exit;;
sync)
# search (-Ss, -s) handling
- if [[ $search ]]; then
- if [[ $refresh ]]; then
- sudo $pacmanbin ${pacmanarg[@]} ${pacopts[@]} -- ${pkgs[@]}
+ if [[ "$search" ]]; then
+ if [[ "$refresh" ]]; then
+ sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" -- "${pkgs[@]}"
else
- $pacmanbin ${pacmanarg[@]} ${pacopts[@]} -- ${pkgs[@]}
+ "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" -- "${pkgs[@]}"
fi
exitrepo=$?
- if [[ ! $repo && $fallback = true || $aur ]]; then
- auracle ${auropts[@]} -- $@ ${pkgs[@]}
+ if [[ ! "$repo" && "$fallback" = true || "$aur" ]]; then
+ auracle "${auropts[@]}" -- "$@" "${pkgs[@]}"
exitaur=$?
fi
# exit code
if [[ -n "$exitrepo" && -n "$exitaur" ]]; then
- [[ $exitrepo -eq 0 || $exitaur -eq 0 ]] && exit 0 || exit 1
+ [[ "$exitrepo" -eq 0 || "$exitaur" -eq 0 ]] && exit 0 || exit 1
elif [[ -n "$exitrepo" ]]; then
- [[ $exitrepo -eq 0 ]] && exit 0 || exit 1
+ [[ "$exitrepo" -eq 0 ]] && exit 0 || exit 1
elif [[ -n "$exitaur" ]]; then
- [[ $exitaur -eq 0 ]] && exit 0 || exit 1
+ [[ "$exitaur" -eq 0 ]] && exit 0 || exit 1
else
exit 1
fi
# info (-Si, -i) handling
- elif [[ $info ]]; then
- if [[ -z "${pkgs[@]}" ]]; then
- $pacmanbin ${pacmanarg[@]} ${pacopts[@]}
+ elif [[ "$info" ]]; then
+ if [[ -z "${pkgs[*]}" ]]; then
+ "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}"
else
- ClassifyPkgs ${pkgs[@]}
+ ClassifyPkgs "${pkgs[@]}"
fi
- if [[ -n "${repopkgs[@]}" ]]; then
- [[ $refresh ]] && sudo $pacmanbin ${pacmanarg[@]} ${pacopts[@]} ${repopkgs[@]}
- [[ ! $refresh ]] && $pacmanbin ${pacmanarg[@]} ${pacopts[@]} ${repopkgs[@]}
+ if [[ -n "${repopkgs[*]}" ]]; then
+ [[ "$refresh" ]] && sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" "${repopkgs[@]}"
+ [[ ! "$refresh" ]] && "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" "${repopkgs[@]}"
fi
- if [[ -n "${aurpkgs[@]}" ]]; then
- [[ $refresh ]] && [[ -z "${repopkgs[@]}" ]] && sudo $pacmanbin -Sy ${pacopts[@]}
- if [[ $fallback = true && ! $aur ]]; then
+ if [[ -n "${aurpkgs[*]}" ]]; then
+ [[ "$refresh" ]] && [[ -z "${repopkgs[*]}" ]] && sudo "$pacmanbin" -Sy "${pacopts[@]}"
+ if [[ "$fallback" = true && ! "$aur" ]]; then
Note "w" $"Package(s) ${colorW}${aurpkgs[*]}${reset} not found in repositories, trying ${colorM}AUR${reset}..."
fi
- auracle ${auropts[@]} -- $@ ${aurpkgs[@]}
+ auracle "${auropts[@]}" -- "$@" "${aurpkgs[@]}"
fi
# clean (-Sc) handling
- elif [[ $cleancache ]]; then
- [[ ! $aur ]] && sudo $pacmanbin ${pacmanarg[@]} ${pacopts[@]} ${repopkgs[@]}
- [[ ! $repo ]] && [[ $fallback = true || $aur ]] && CleanCache ${pkgs[@]}
+ elif [[ "$cleancache" ]]; then
+ [[ ! "$aur" ]] && sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" "${repopkgs[@]}"
+ [[ ! "$repo" ]] && [[ "$fallback" = true || "$aur" ]] && CleanCache "${pkgs[@]}"
# sysupgrade (-Su, -u) handling
- elif [[ $upgrade ]]; then
- [[ -n "${pkgs[@]}" ]] && ClassifyPkgs ${pkgs[@]}
- if [[ ! $aur ]]; then
- sudo $pacmanbin ${pacmanarg[@]} ${pacopts[@]} ${repopkgs[@]}
- (($? > 0)) && [[ $repo ]] && exit 1
- [[ $repo ]] && exit 0
+ elif [[ "$upgrade" ]]; then
+ [[ -n "${pkgs[*]}" ]] && ClassifyPkgs "${pkgs[@]}"
+ if [[ ! "$aur" ]]; then
+ sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" "${repopkgs[@]}" || [[ "$repo" ]] && exit 1
+ [[ "$repo" ]] && exit 0
fi
- if [[ -n "${aurpkgs[@]}" ]] && [[ $fallback = true && ! $aur ]]; then
+ if [[ -n "${aurpkgs[*]}" ]] && [[ "$fallback" = true && ! "$aur" ]]; then
Note "w" $"Package(s) ${colorW}${aurpkgs[*]}${reset} not found in repositories, trying ${colorM}AUR${reset}..."
fi
- [[ ! $repo ]] && [[ $fallback = true || $aur ]] && Core
+ [[ ! "$repo" ]] && [[ "$fallback" = true || "$aur" ]] && Core
# sync (-S, -y), downloadonly (-Sw, -m), refresh (-Sy)
else
- if [[ -z "${pkgs[@]}" ]]; then
- sudo $pacmanbin ${pacmanarg[@]} ${pacopts[@]}
+ if [[ -z "${pkgs[*]}" ]]; then
+ sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}"
else
- ClassifyPkgs ${pkgs[@]}
+ ClassifyPkgs "${pkgs[@]}"
fi
- [[ -n "${repopkgs[@]}" ]] && sudo $pacmanbin ${pacmanarg[@]} ${pacopts[@]} ${repopkgs[@]}
- if [[ -n "${aurpkgs[@]}" ]]; then
- [[ $refresh ]] && [[ -z "${repopkgs[@]}" ]] && sudo $pacmanbin -Sy ${pacopts[@]}
- if [[ $fallback = true && ! $aur ]]; then
+ [[ "${repopkgs[*]}" ]] && sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" "${repopkgs[@]}"
+ if [[ "${aurpkgs[*]}" ]]; then
+ [[ "$refresh" ]] && [[ ! "${repopkgs[*]}" ]] && sudo "$pacmanbin" -Sy "${pacopts[@]}"
+ if [[ "$fallback" = true && ! "$aur" ]]; then
Note "w" $"Package(s) ${colorW}${aurpkgs[*]}${reset} not found in repositories, trying ${colorM}AUR${reset}..."
fi
Core
@@ -1980,12 +1977,12 @@ case $operation in
exit;;
upgrades) CheckUpdates "${pkgs[@]}";; # upgrades (-Qu) handling
*) # others operations handling
- if [[ -n "$(grep -e "-[F]" <<< ${pacmanarg[@]})" && -n "$(grep -e "-[y]" <<< ${pacmanarg[@]})" ]]; then
- sudo $pacmanbin ${pacmanarg[@]} ${pacopts[@]} "${pkgs[@]}"
- elif [[ -z "${pkgs[@]}" || -n "$(grep -e "-[DFQTglp]" <<< ${pacmanarg[@]})" ]] && [[ ! " ${pacopts[@]} " =~ --(asdeps|asexplicit) ]]; then
- $pacmanbin ${pacmanarg[@]} ${pacopts[@]} "${pkgs[@]}"
+ if grep -qe "-[F]" <<< "${pacmanarg[@]}" && grep -qe "-[y]" <<< "${pacmanarg[@]}"; then
+ sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" "${pkgs[@]}"
+ elif [[ ! "${pkgs[*]}" ]] || grep -qe "-[DFQTglp]" <<< "${pacmanarg[@]}" && [[ ! "${pacopts[*]}" =~ --(asdeps|asexplicit) ]]; then
+ "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" "${pkgs[@]}"
else
- sudo $pacmanbin ${pacmanarg[@]} ${pacopts[@]} "${pkgs[@]}"
+ sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" "${pkgs[@]}"
fi
exit;;
esac