summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authore5ten <e5ten.arch@gmail.com>2019-04-26 14:15:06 -0400
committere5ten <e5ten.arch@gmail.com>2019-05-03 14:08:29 -0400
commit72bfcd1d4e2dbeb536bfc120e9c371461842f09c (patch)
tree36080df7d8eb1dec083e17c5510a3b10f30c0488
parent8fac53d28df7ff57fd0ae42e3bb8f43dd893ba04 (diff)
remove CheckUpdates in favour of auracle sync, replace early opt-parsing for loop, syntax changes (mainly stuff with herestrings/process substitution
-rwxr-xr-xpacaur240
1 files changed, 87 insertions, 153 deletions
diff --git a/pacaur b/pacaur
index 5653bc8..ba8cc57 100755
--- a/pacaur
+++ b/pacaur
@@ -11,9 +11,9 @@ declare -r version="4.8.6"
#
# sanitize
-unset aur asdeps asexplicit checkdeps cleancache ccount dcount devel edit info installpkg needed
-unset noconfirm nodeps noedit operation pac pacQ pacS pacg pacn pacw quiet readline rebuild refresh
-unset repo search upgrade var vcs
+unset aur asdeps asexplicit checkdeps cleancache ccount dcount devel downloadonly edit info
+unset installpkg native needed noconfirm nodeps noedit noop operation pac pace pacQ pacS quiet
+unset readline rebuild refresh repo search upgrade var vcs ver
# internationalization
export LC_COLLATE=C
@@ -111,7 +111,7 @@ ClassifyPkgs() {
noaurpkgs+=("$i")
done
[[ "${noaurpkgs[*]}" ]] &&
- mapfile -t norepopkgs <<< "$(expac -Sv '' -- "${noaurpkgs[@]}" 2>&1 >/dev/null)" &&
+ mapfile -t norepopkgs < <(expac -Sv '' -- "${noaurpkgs[@]}" 2>&1 >/dev/null) &&
norepopkgs=("${norepopkgs[@]#error: package \`}") &&
norepopkgs=("${norepopkgs[@]%\' not found}")
for i in "${norepopkgs[@]}"; do
@@ -154,7 +154,7 @@ UpgradeAur() {
done
# use auracle to find out of date AUR packages
- mapfile -t aurpkgs <<< "$(auracle sync -q)"
+ mapfile -t aurpkgs < <(auracle sync -q)
# add devel packages
if [[ "$devel" ]]; then
@@ -163,6 +163,8 @@ UpgradeAur() {
done
fi
+ aurpkgs+=("${pkgs[@]}")
+
# avoid possible duplicate
aurpkgs=($(printf '%s\n' "${aurpkgs[@]}" | sort -u))
@@ -180,15 +182,13 @@ IgnoreChecks() {
# check targets
SetJson "${aurpkgsnover[@]}"
checkaurpkgs=($(GetJson "$json" "Name"))
- errdeps=($(CommArr 'aurpkgs' 'checkaurpkgs' '-3'))
+ errdeps=($(CommArr 'aurpkgsnover' 'checkaurpkgs' '-3'))
unset aurpkgsnover
checkaurpkgsAver=($(GetJson "$json" "Version"))
- checkaurpkgsQver=($(expac -Q '%v' "${checkaurpkgs[@]}"))
+ mapfile -t checkaurpkgsQver < <(expac -Qv '%v' "${checkaurpkgs[@]}" 2>&1)
for i in "${!checkaurpkgs[@]}"; do
[[ "${checkaurpkgs[$i]}" =~ $vcs ]] && checkaurpkgsAver[$i]=$"latest"
- done
- for i in "${!checkaurpkgs[@]}"; do
unset isignored
if [[ " ${ignoredpkgs[*]} " =~ " ${checkaurpkgs[$i]} " ]]; then
isignored=1
@@ -277,7 +277,7 @@ DepsSolver() {
depsAood=($(GetJson "$json" "OutOfDate"))
depsAmain=($(GetJson "$json" "Maintainer"))
for i in "${!depsAname[@]}"; do
- read -rd' ' <<< "$(expac -Qs '%v' "^${depsAname[$i]}$")" depsQver[$i]
+ read -rd' ' < <(expac -Qs '%v' "^${depsAname[$i]}$") depsQver[$i]
[[ "${depsQver[$i]}" ]] || depsQver[$i]="%" # avoid empty elements shift
[[ "${depsAname[$i]}" =~ $vcs ]] && depsAver[$i]=$"latest"
done
@@ -327,10 +327,10 @@ FindDepsAur() {
# set json
unset aurversionpkgs
if [[ "${depspkgsaur[*]}" ]]; then
- SetJson "${depspkgsaur[@]}"
+ SetInfo "${depspkgsaur[@]}"
aurversionpkgs=("${prevdepspkgsaur[@]}")
else
- SetJson "${aurpkgsnover[@]}"
+ SetInfo "${aurpkgsnover[@]}"
aurversionpkgs=("${aurpkgs[@]}")
fi
@@ -405,7 +405,7 @@ FindDepsAur() {
# check providers
unset vcsdepspkgs
for i in "${!depspkgs[@]}"; do
- unset j && read -rd' ' <<< "$(expac -Qs '%n %P' "^${depspkgs[$i]}$")" j
+ unset j && read -rd' ' < <(expac -Qs '%n %P' "^${depspkgs[$i]}$") j
if [[ "$j" ]]; then
depspkgs[$i]="$j"
[[ "$devel" && ! " ${ignoredpkgs[*]} " =~ " $j " && "$j" =~ $vcs ]] &&
@@ -440,7 +440,7 @@ FindDepsAur() {
depspkgs=($(CommArr 'assumeinstalled' 'depspkgs' '-13'))
fi
if [[ "${depspkgs[*]}" ]]; then
- mapfile -t depspkgsaur <<< "$(expac -Sv '' -- "${depspkgs[@]%%[><=]*}" 2>&1)" &&
+ mapfile -t depspkgsaur < <(expac -Sv '' -- "${depspkgs[@]%%[><=]*}" 2>&1) &&
depspkgsaur=("${depspkgsaur[@]#error: package \`}") &&
depspkgsaur=("${depspkgsaur[@]%\' not found}")
repodeps+=($(CommArr 'depspkgsaur' 'depspkgs' '-13'))
@@ -557,7 +557,7 @@ FindDepsRepo() {
[[ "${repodeps[*]}" ]] || return
# reduce root binary deps
- repodeps=($(sort -u <<< "$(printf '%s\n' "${repodeps[@]}")"))
+ repodeps=($(sort -u < <(printf '%s\n' "${repodeps[@]}")))
# add initial repodeps
[[ "${repodepspkgs[*]}" ]] || repodepspkgs=("${repodeps[@]}")
@@ -815,7 +815,7 @@ ConflictChecks() {
for j in "${aurAconflicts[@]}"; do
unset k Aprovides
- read -rd' ' <<< "$(expac -Qs '%n %P' "^$i$")" k
+ read -rd' ' < <(expac -Qs '%n %P' "^$i$") k
[[ ! "$installpkg" && ! " ${aurdepspkgs[*]} " =~ " $j " ]] && continue # download only
[[ "$j" = "$k" || ! "$k" ]] && continue # skip if reinstalling or if no conflict exists
@@ -826,7 +826,7 @@ ConflictChecks() {
aurconflictingpkgsrm+=("$k")
for l in "${!depsAname[@]}"; do
[[ " ${depsAname[$l]} " =~ "$k" ]] &&
- read -rd' ' <<< "$(expac -Qs '%v' "^$k$")" depsQver[$l]
+ read -rd' ' < <(expac -Qs '%v' "^$k$") depsQver[$l]
done
Aprovides+=($(GetJson "$json" "Provides" "$j"))
# remove AUR versioning
@@ -888,8 +888,8 @@ 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
+ unset j && read -rd' ' < <(expac -Ss '%n %C %S' "^$i$") j
+ unset k && read -rd' ' < <(expac -Qs '%n %C %S' "^$i$") k
[[ "$j" = "$k" || ! "$k" ]] && continue # skip when no conflict with repopkgs
if [[ ! "$noconfirm" && ! " ${repoconflictingpkgs[*]} " =~ " $k " ]]; then
if ! Proceed "n" $"$j and $k are in conflict ($i). Remove $k?"; then
@@ -934,7 +934,7 @@ ReinstallChecks() {
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"
- mapfile -t deps <<< "$(printf ' %s \n' "${deps[@]}")"
+ mapfile -t deps < <(printf ' %s \n' "${deps[@]}")
deps=($(printf '%s\n' "${deps[@]// ${depsAname[$i]} /}"))
unset "depsAname[$i]" "depsQver[$i]" "depsAver[$i]" "depsAood[$i]" "depsAmain[$i]"
fi
@@ -958,7 +958,7 @@ OrphanChecks() {
local i
# global depsAname depsAver depsAmain
for i in "${!depsAname[@]}"; do
- [[ "${depsAmain[$i]}" = 'null' ]] &&
+ [[ "${depsAmain[$i]}" = 'null' || ! "${depsAmain[$i]}" ]] &&
Note "w" $"${colorW}${depsAname[$i]}-${depsAver[$i]}${reset} is ${colorR}orphaned${reset} in AUR"
done
}
@@ -1080,7 +1080,7 @@ EditPkgs() {
for i in "$@"; do
[[ " ${cachedpkgs[*]} " =~ " $i " ]] && continue
GetInstallScripts "$i"
- if [[ ! "$edit" ]]; then
+ if [[ ! "$pace" ]]; then
if [[ "$displaybuildfiles" = diff && -e "$clonedir/$i/.git/HEAD.prev" ]]; then
local prev="$(<"$clonedir/$i/.git/HEAD.prev")"
# show diff
@@ -1185,7 +1185,8 @@ MakePkgs() {
pkgsdeps+=("%")
done
deplist="${pkgsdeps[@]}"; deplist="${deplist// % /|}"; deplist="${deplist//%}"
- deplist="${deplist// /,}"; deplist="${deplist//|/ }"; pkgsdeps=($(printf '%s\n' ${deplist}))
+ deplist="${deplist// /,}"; deplist="${deplist//|/ }"; pkgsdeps=($(printf '%s\n' ${deplist%, }))
+ pkgsdeps=("${pkgsdeps[@]%,}")
# reverse deps order
for i in "${!basepkgs[@]}"; do
@@ -1200,7 +1201,7 @@ MakePkgs() {
# integrity check
for i in "${!basepkgs[@]}"; do
# get split packages list
- mapfile -t -d',' pkgsdepslist <<< "${pkgsdeps[$i]}"
+ read -rd',' -a pkgsdepslist <<< "${pkgsdeps[$i]}"
# cache check
unset builtpkg
@@ -1270,18 +1271,18 @@ MakePkgs() {
# main
for i in "${!basepkgs[@]}"; do
# get split packages list
- mapfile -t -d',' pkgsdepslist <<< "${pkgsdeps[$i]}"
+ read -rd',' -a pkgsdepslist <<< "${pkgsdeps[$i]}"
cd_safe "$clonedir/${basepkgs[$i]}"
# retrieve updated version
- mapfile -t -d'-' k <<< "$(makepkg --packagelist)" && aurdevelpkgsAver="${k[-3]}-${k[-2]}"
+ mapfile -t -d'-' k < <(makepkg --packagelist) && aurdevelpkgsAver="${k[-3]}-${k[-2]}"
unset k
# build devel if necessary only (supported protocols only)
if [[ "${basepkgs[$i]}" =~ $vcs ]]; then
# check split packages update
unset basepkgsupdate checkpkgsdepslist
for j in "${pkgsdepslist[@]}"; do
- read -rd' ' <<< "$(expac -Qs '%v' "^$j$")" aurdevelpkgsQver
+ read -rd' ' < <(expac -Qs '%v' "^$j$") aurdevelpkgsQver
if [[ "$needed" && ! "$rebuild" && "$aurdevelpkgsQver" ]] &&
[[ "$(vercmp "$aurdevelpkgsQver" "$aurdevelpkgsAver")" -ge 0 ]]; then
Note "w" $"${colorW}$j${reset} is up-to-date -- skipping" && continue
@@ -1300,9 +1301,9 @@ MakePkgs() {
if [[ "$builtpkg" ]]; then
if [[ " ${aurdepspkgs[*]} " =~ " $j " || "$installpkg" ]]; then
Note "i" $"Installing ${colorW}$j${reset} cached package..."
- sudo "$pacmanbin" -U --ask 36 "${pacopts[@]/--quiet}" --noconfirm -- "$builtpkg"
+ sudo "$pacmanbin" -U --ask 36 ${pacopts[@]/--quiet} --noconfirm -- "$builtpkg"
[[ " ${aurpkgs[*]} " =~ " $j " ]] ||
- sudo "$pacmanbin" -D "$j" --asdeps "${pacopts[@]}" &>/dev/null
+ sudo "$pacmanbin" -D "$j" --asdeps ${pacopts[@]} &>/dev/null
else
Note "w" $"Package ${colorW}$j${reset} already available in cache"
fi
@@ -1350,7 +1351,7 @@ MakePkgs() {
# install
if [[ "$installpkg" || ! "${builtpkgs[*]}" ]]; then
Note "i" $"Installing ${colorW}${pkgsdeps[$i]}${reset} package(s)..."
- sudo "$pacmanbin" -U --ask 36 "${pacopts[@]/--quiet}" --noconfirm -- "${builtdepspkgs[@]}" "${builtpkgs[@]}"
+ sudo "$pacmanbin" -U --ask 36 ${pacopts[@]/--quiet} --noconfirm -- ${builtdepspkgs[@]} ${builtpkgs[@]}
fi
# set dep status
@@ -1402,86 +1403,6 @@ MakePkgs() {
[[ "${errinstall[*]}" ]] && exit "$E_INSTALL_FAILED"
}
-CheckUpdates() {
- local i j json foreignpkgs foreignpkgsbase aurpkgsQood aurpkgsAname aurpkgsAver aurpkgsQver
- local aurpkgsQignore aurdevelpkgsAver aurdevelpkgsQver aurpkgsQoodAver
- # global aur repo
-
- [[ ! "$aur" ]] && "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}"; exitrepo=$?
-
- GetIgnoredPkgs
-
- if [[ ! "$repo" && ! "$pacn" ]]; then
- [[ ! "${pkgs[*]}" ]] && foreignpkgs=($("$pacmanbin" -Qmq)) || foreignpkgs=("${pkgs[@]}")
- if [[ "${foreignpkgs[*]}" ]]; then
- SetJson "${foreignpkgs[@]}"
- aurpkgsAname=($(GetJson "$json" "Name"))
- aurpkgsAver=($(GetJson "$json" "Version"))
- aurpkgsQver=($(expac -Q '%v' "${aurpkgsAname[@]}"))
- for i in "${!aurpkgsAname[@]}"; do
- [[ "$(vercmp "${aurpkgsAver[$i]}" "${aurpkgsQver[$i]}")" -gt 0 ]] &&
- aurpkgsQood+=("${aurpkgsAname[$i]}");
- done
- fi
-
- # add devel packages
- if [[ "$devel" ]]; then
- if [[ ! "$needed" ]]; then
- for i in "${foreignpkgs[@]}"; do
- [[ "$i" =~ $vcs ]] && aurpkgsQood+=("$i")
- done
- else
- foreignpkgsbase=($(expac -Q '%n %e' "${foreignpkgs[@]}" |
- awk '{if ($2 == "(null)") print $1; else print $2}'))
- foreignpkgsnobase=($(expac -Q '%n' "${foreignpkgs[@]}"))
- for i in "${!foreignpkgsbase[@]}"; do
- if [[ "${foreignpkgsbase[$i]}" =~ $vcs ]]; then
- [[ ! -d "$clonedir/${foreignpkgsbase[$i]}" ]] &&
- DownloadPkgs "${foreignpkgsbase[$i]}" &>/dev/null
- cd_safe "$clonedir/${foreignpkgsbase[$i]}"
- # silent extraction and pkgver update only
- makepkg -od --noprepare --skipinteg &>/dev/null
- # retrieve updated version
- mapfile -t -d'-' j <<< "$(makepkg --packagelist)"
- aurdevelpkgsAver="${j[-3]}-${j[-2]}" && unset j
- read -rd' ' <<< "$(expac -Qs '%v' "^${foreignpkgsbase[$i]}$")" aurdevelpkgsQver
- [[ "$(vercmp "$aurdevelpkgsQver" "$aurdevelpkgsAver")" -ge 0 ]] ||
- aurpkgsQood+=("${foreignpkgsnobase[$i]}") &&
- aurpkgsQoodAver+=("$aurdevelpkgsAver")
- fi
- done
- fi
- fi
-
- if [[ "${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 [[ "${aurpkgsAname[$i]}" =~ $vcs ]]; then
- [[ ! "$needed" ]] && aurpkgsAver[$i]=$"latest" || aurpkgsAver[$i]="${aurpkgsQoodAver[$i]}"
- fi
- done
- fi
- fi
-
- if [[ "${aurpkgsQood[*]}" ]]; then
- exitaur=$?
- if [[ ! "$quiet" ]]; then
- for i in "${!aurpkgsAname[@]}"; do
- [[ "${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
- printf '%s\n' "${aurpkgsQood[@]}" | sort -u
- fi
- fi
- # exit code
- [[ "$exitrepo" = 0 || "$exitaur" = 0 ]] && exit "$E_OK" || exit "$E_FAIL"
-}
-
CleanCache() {
local i cachepkgs
cachedir=($(pacman-conf CacheDir))
@@ -1528,8 +1449,7 @@ CleanCache() {
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}'))
+ foreignpkgsbase=($(expac -Q '%n %e' $("$pacmanbin" -Qmq)))
# get target
if [[ "${pkgs[*]}" ]]; then
pkgsbase=($(expac -Q '%e' "${pkgs[@]}"))
@@ -1594,7 +1514,7 @@ GetInstallScripts() {
GetBuiltPkg() {
local ext
# global builtpkg
- # check PKGEXT suffixe first, then default .xz suffix for repository packages in pacman cache
+ # check PKGEXT suffix first, then default .xz suffix for repository packages in pacman cache
# and lastly all remaining suffixes in case PKGEXT is locally overridden
for ext in "$PKGEXT" .pkg.tar{.xz,,.gz,.bz2,.lzo,.lrz,.Z}; do
builtpkg="$2/$1-${CARCH}${ext}"
@@ -1776,15 +1696,6 @@ longopts_aur=('aur' 'by:' 'devel' 'edit' 'literal' 'noedit' 'rebuild' 'repo' 'rs
parseopts "${shortopts}" "${longopts[@]}" "${longopts_aur[@]}" -- "$@" || exit "$E_INVALID_OPTION"
set -- "${OPTRET[@]}"
-for i in "${OPTRET[@]}"; do
- [[ "$i" =~ ^--$ ]] && break
- [[ "$i" =~ ^-(S|-sync)$ ]] && pacS=1 && operation=sync && ((pac++))
- [[ "$i" =~ ^-(Q|-query)$ ]] && pacQ=1 && ((pac++))
- [[ "$i" =~ ^-([DFRTUV]|-database|-files|-remove|-deptest|-upgrade)$ ]] && ((pac++))
- [[ "$i" =~ ^-(w|-downloadonly)$ ]] && pacw=1
- [[ "$i" =~ ^-([glp]|-groups|-list|-print)$ ]] && pacg=1
-done
-
while true; do
[[ "$1" = -[cdf-qs-zDFQRSTUV] ]] && pacmanarg+=("$1")
for i in "${longopts[@]}"; do
@@ -1792,14 +1703,15 @@ while true; do
[[ "$1": = "--$i" ]] && pacopts+=("$1=$2")
done
case "$1" in
- -S|--sync) [[ "$pacw" ]] || installpkg=1 && [[ "$pacg" ]] && unset operation;;
+ -S|--sync) pacS=1; installpkg=1; operation=sync; ((pac++));;
+ -Q|--query) pacQ=1; ((pac++));;
-s|--search) search=1;;
-i|--info) info=1;;
- -e|--edit) [[ "$pacQ" ]] && pacopts+=("-e"); edit=1; (("$pac"==0)) && operation=edit;;
- -u|--upgrades|--sysupgrade) [[ "$pacQ" ]] && operation=upgrades; upgrade=1; installpkg=1;;
+ -e|--edit) pace=1;;
+ -u|--upgrades|--sysupgrade) upgrade=1; installpkg=1;;
-q|--quiet) quiet=1; auropts+=("$1");;
-c|--clean) cleancache=1 && ((ccount++));;
- -n|--native) pacn=1;;
+ -n|--native) native=1;;
-r|--repo) repo=1;;
-a|--aur) aur=1;;
--ignore) ignoredpkgs+=("$2"); shift;;
@@ -1810,19 +1722,29 @@ while true; do
--rsort) sortorder="descending"; sortby="$2"; shift;;
-d|--nodeps) nodeps=1; makeopts+=("$1"); ((dcount++));;
--assume-installed) assumeinstalled+=("$2"); shift;;
+ -[DFRTUV]|--@(database|files|remove|deptest|upgrade)) ((pac++));;
--@(asdeps|asexplicit|devel|needed|noconfirm|noedit|rebuild)) declare "${1/--}"=1;;
+ -[glp]|--@(groups|list|print)) noop=1;;
+ -w|--downloadonly) downloadonly=1;;
--silent) silent=true; pacopts+=("--quiet"); auropts+=("--quiet") makeopts+=("--log");;
-y|--refresh) refresh=1;;
- -h|--help) unset operation; (("$pac"==0)) && Usage;;
- -v|--version) [[ "$pac" -eq 0 || "$1" = --version ]] && printf '%s\n' "pacaur $version" && exit "$E_OK";;
+ -h|--help) help=1;;
+ --version) operation=version; ((pac++));;
+ -v) ver=1;;
--) shift; break;;
esac
shift
done
+# help or version
+[[ "$operation" = version ]] || [[ "$pac" -eq 0 && "$ver" ]] && printf '%s\n' "pacaur $version" && exit "$E_OK"
+[[ "$pac" -eq 0 && "$help" ]] && Usage
+
# sorting
-[[ "$sortorder" = ascending ]] && auropts+=("--sort=$sortby")
-[[ "$sortorder" = descending ]] && auropts+=("--rsort=$sortby")
+case "$sortorder" in
+ ascending) auropts+=("--sort=$sortby");;
+ descending) auropts+=("--rsort=$sortby");;
+esac
# packages
pkgs=("$@")
@@ -1842,6 +1764,11 @@ fi
# sanity check
[[ "$aur" ]] && unset refresh
+[[ "$pac" -eq 0 && "$pace" ]] && operation=edit
+[[ "$pacQ" && "$pace" ]] && pacopts+=("-e")
+[[ "$pacQ" && "$upgrade" ]] && operation=upgrades
+[[ "$pacS" && "$downloadonly" ]] && unset installpkg
+[[ "$pacS" && "$noop" ]] && unset operation
[[ "$pacS" && "$cleancache" ]] && unset search info upgrade
[[ "$pac" -gt 1 ]] && Note "e" $"only one operation may be used at a time" "$E_FAIL"
[[ "$operation" = sync && ! "$search" && ! "$info" && ! "$cleancache" && "$EUID" -eq 0 ]] &&
@@ -1859,7 +1786,7 @@ fi
[[ ! "${pkgs[*]}" && " ${pacmanarg[*]} " =~ ' '-[RU]' ' && ! " ${pacmanarg[*]} " =~ ' -h ' ]] &&
Note "e" $"no targets specified (use -h for help)" "$E_FAIL"
[[ "$repo" && "$aur" ]] && unset aur repo &&
- Note "w" $"invalid option: '--repo' and '--aur' may not be used together, disabling both"
+ Note "w" $"invalid option: '-r/--repo' and '-a/--aur' may not be used together, disabling both"
# operations
case "$operation" in
@@ -1872,14 +1799,14 @@ case "$operation" in
if [[ "$search" ]]; then
if [[ ! "$aur" ]]; then
if [[ "$refresh" ]]; then
- sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" -- "${pkgs[@]}"
+ sudo "$pacmanbin" ${pacmanarg[@]} ${pacopts[@]} -- ${pkgs[@]}
else
- "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" -- "${pkgs[@]}"
+ "$pacmanbin" ${pacmanarg[@]} ${pacopts[@]} -- ${pkgs[@]}
fi
exitrepo=$?
fi
if [[ ! "$repo" ]]; then
- auracle search "${auropts[@]}" -- "${pkgs[@]}"
+ auracle search ${auropts[@]} -- ${pkgs[@]}
exitaur=$?
fi
# exit code
@@ -1887,61 +1814,68 @@ case "$operation" in
# info (-Si, -i) handling
elif [[ "$info" ]]; then
if [[ ! "${pkgs[*]}" ]]; then
- "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}"
+ "$pacmanbin" ${pacmanarg[@]} ${pacopts[@]}
else
ClassifyPkgs "${pkgs[@]}"
fi
if [[ "${repopkgs[*]}" ]]; then
- [[ "$refresh" ]] &&
- sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" "${repopkgs[@]}"
- [[ ! "$refresh" ]] &&
- "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" "${repopkgs[@]}"
+ [[ "$refresh" ]] && sudo "$pacmanbin" ${pacmanarg[@]} ${pacopts[@]} ${repopkgs[@]}
+ [[ ! "$refresh" ]] && "$pacmanbin" ${pacmanarg[@]} ${pacopts[@]} ${repopkgs[@]}
fi
if [[ "${aurpkgs[*]}" ]]; then
- [[ "$refresh" && ! "${repopkgs[*]}" ]] && sudo "$pacmanbin" -Sy "${pacopts[@]}"
+ [[ "$refresh" && ! "${repopkgs[*]}" ]] && sudo "$pacmanbin" -Sy ${pacopts[@]}
[[ ! "$aur" ]] &&
- Note "w" $"Package(s) ${colorW}${aurpkgs[*]}${reset} not found in repositories, trying ${colorM}AUR${reset}..."
+ Note "i" $"Package(s) ${colorW}${aurpkgs[*]}${reset} not found in repositories, trying ${colorM}AUR${reset}..."
auracle info "${auropts[@]}" -- "${aurpkgs[@]}"
fi
# clean (-Sc) handling
elif [[ "$cleancache" ]]; then
- [[ ! "$aur" ]] && sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" "${repopkgs[@]}"
+ [[ ! "$aur" ]] && sudo "$pacmanbin" ${pacmanarg[@]} ${pacopts[@]} ${repopkgs[@]}
[[ ! "$repo" ]] && CleanCache "${pkgs[@]}"
# sysupgrade (-Su, -u) handling
elif [[ "$upgrade" ]]; then
[[ "${pkgs[*]}" ]] && ClassifyPkgs "${pkgs[@]}"
if [[ ! "$aur" ]]; then
- sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" "${repopkgs[@]}"
+ sudo "$pacmanbin" ${pacmanarg[@]} ${pacopts[@]} ${repopkgs[@]}
(($?>0)) && [[ "$repo" ]] && exit "$E_FAIL"
fi
if [[ "${aurpkgs[*]}" && ! "$aur" ]]; then
- Note "w" $"Package(s) ${colorW}${aurpkgs[*]}${reset} not found in repositories, trying ${colorM}AUR${reset}..."
+ Note "i" $"Package(s) ${colorW}${aurpkgs[*]}${reset} not found in repositories, trying ${colorM}AUR${reset}..."
fi
[[ ! "$repo" ]] && Core
# sync (-S, -y), downloadonly (-Sw, -m), refresh (-Sy)
else
if [[ ! "${pkgs[*]}" ]]; then
- sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}"
+ sudo "$pacmanbin" ${pacmanarg[@]} ${pacopts[@]}
else
ClassifyPkgs "${pkgs[@]}"
fi
- [[ "${repopkgs[*]}" ]] &&
- sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" "${repopkgs[@]}"
+ [[ "${repopkgs[*]}" ]] && sudo "$pacmanbin" ${pacmanarg[@]} ${pacopts[@]} ${repopkgs[@]}
if [[ "${aurpkgs[*]}" ]]; then
- [[ "$refresh" && ! "${repopkgs[*]}" ]] && sudo "$pacmanbin" -Sy "${pacopts[@]}"
- [[ ! "$aur" ]] && Note "w" $"Package(s) ${colorW}${aurpkgs[*]}${reset} not found in repositories, trying ${colorM}AUR${reset}..."
+ [[ "$refresh" && ! "${repopkgs[*]}" ]] && sudo "$pacmanbin" -Sy ${pacopts[@]}
+ [[ ! "$aur" ]] && Note "i" $"Package(s) ${colorW}${aurpkgs[*]}${reset} not found in repositories, trying ${colorM}AUR${reset}..."
Core
fi
fi
exit;;
- upgrades) CheckUpdates "${pkgs[@]}";; # upgrades (-Qu) handling
+ upgrades) # upgrades (-Qu) handling
+ [[ "$aur" ]] || "$pacmanbin" ${pacmanarg[@]} ${pacopts[@]} -- ${pkgs[@]}; exitrepo=$?
+ if [[ ! "$repo" && ! "$native" ]]; then
+ if [[ ! "${pkgs[*]}" ]]; then
+ auracle sync ${auropts[@]} $("$pacmanbin" -qm ${pacmanarg[@]//-u} ${pacopts[@]//--upgrades})
+ else
+ auracle sync ${auropts[@]} -- ${pkgs[@]}
+ fi
+ exitaur=$?
+ fi
+ [[ "$exitrepo" = 0 || "$exitaur" = 0 ]] && exit "$E_OK" || exit "$E_FAIL";;
*) if [[ " ${pacmanarg[*]} " =~ ' -F ' && " ${pacmanarg[*]} " =~ ' -y ' ]]; then
- sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" -- "${pkgs[@]}"
+ sudo "$pacmanbin" ${pacmanarg[@]} ${pacopts[@]} -- ${pkgs[@]}
elif [[ ! "${pkgs[*]}" ]] ||
[[ " ${pacmanarg[*]} " =~ ' '-[DFQTglp]' ' && ! "${asdeps}${asexplicit}" ]]; then
- "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" -- "${pkgs[@]}"
+ "$pacmanbin" ${pacmanarg[@]} ${pacopts[@]} -- ${pkgs[@]}
else
- sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" -- "${pkgs[@]}"
+ sudo "$pacmanbin" ${pacmanarg[@]} ${pacopts[@]} -- ${pkgs[@]}
fi
exit;; # others operations handling
esac