diff options
author | e5ten <e5ten.arch@gmail.com> | 2019-04-26 14:15:06 -0400 |
---|---|---|
committer | e5ten <e5ten.arch@gmail.com> | 2019-05-03 14:08:29 -0400 |
commit | 72bfcd1d4e2dbeb536bfc120e9c371461842f09c (patch) | |
tree | 36080df7d8eb1dec083e17c5510a3b10f30c0488 | |
parent | 8fac53d28df7ff57fd0ae42e3bb8f43dd893ba04 (diff) |
remove CheckUpdates in favour of auracle sync, replace early opt-parsing for loop, syntax changes (mainly stuff with herestrings/process substitution
-rwxr-xr-x | pacaur | 240 |
1 files changed, 87 insertions, 153 deletions
@@ -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 |