diff options
author | e5ten <e5ten.arch@gmail.com> | 2019-04-21 16:51:06 -0400 |
---|---|---|
committer | e5ten <e5ten.arch@gmail.com> | 2019-05-03 14:01:17 -0400 |
commit | 3fc28e198f7f3696ab907588e459ded9e6653bd0 (patch) | |
tree | 202090002455342e1c16bb4f81a580a968d73493 | |
parent | e9485c251053a04b5d34cc68202b405f77e8cce7 (diff) |
simpify a lot of conditional checks to not use if, add a lot of line breaks to try to keep line size down
-rwxr-xr-x | pacaur | 441 |
1 files changed, 213 insertions, 228 deletions
@@ -33,8 +33,8 @@ usercachedir="${XDG_CACHE_HOME:-${HOME}/.cache}/pacaur" tmpdir="${XDG_RUNTIME_DIR:-/tmp}" # preserve environment variables -vars=('PACMAN' 'PKGDEST' 'SRCDEST' 'SRCPKGDEST' 'LOGDEST' 'BUILDDIR' 'PKGEXT' - 'SRCEXT' 'GPGKEY' 'PACKAGER' 'CARCH') +vars=('PACMAN' 'PKGDEST' 'SRCDEST' 'SRCPKGDEST' 'LOGDEST' 'BUILDDIR' 'PKGEXT' 'SRCEXT' 'GPGKEY' + 'PACKAGER' 'CARCH') for i in "${vars[@]}"; do [[ "${!i}" ]] && declare _"$i"="${!i}" done @@ -110,10 +110,12 @@ ClassifyPkgs() { [[ "$i" = aur/* ]] && aurpkgs+=("${i:4}") && continue # search aur/pkgs in AUR noaurpkgs+=("$i") done - [[ "${noaurpkgs[*]}" ]] && norepopkgs=($(LC_ALL=C "$pacmanbin" -Sp -- "${noaurpkgs[@]}" 2>&1 >/dev/null | awk '{print $NF}')) + [[ "${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=($(DiffArr 'aurpkgs' 'noaurpkgs' -v)) fi @@ -145,7 +147,8 @@ UpgradeAur() { allaurpkgsAver=($(GetJson "$json" "Version")) 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 @@ -305,10 +308,12 @@ DepsSolver() { [[ " $j " = " ${errdepsnover[$i]} " ]] && break done # reverse deps order - tsorterrdeps=($(awk '{for (i=NF;i>=1;i--) print $i}' <<< "${tsorterrdeps[@]}" | 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}')) + 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 @@ -324,7 +329,7 @@ DepsSolver() { FindDepsAur() { local depspkgs depspkgstmp depspkgsaurtmp builtpkg vcsdepspkgs assumedepspkgs aurversionpkgs - local aurversionpkgsname aurversionpkgsver aurversionpkgsaurver i j json + local aurversionpkgsname aurversionpkgsver aurversionpkgsaurver aurversionpkgsverdiff i j json # global aurpkgsnover depspkgsaur errdeps repodeps aurdepspkgs prevdepspkgsaur foreignpkgs [[ "$nodeps" && "$dcount" -ge 2 ]] && return @@ -341,28 +346,28 @@ FindDepsAur() { # versioning check if [[ "${aurversionpkgs[*]}" ]]; then for i in "${!aurversionpkgs[@]}"; do - unset aurversionpkgsname aurversionpkgsver aurversionpkgsaurver + unset aurversionpkgsname aurversionpkgsver aurversionpkgsaurver aurversionpkgsverdiff aurversionpkgsname="${aurversionpkgs[$i]%%[><=]*}" aurversionpkgsver="${aurversionpkgs[$i]##*[><=]}" aurversionpkgsaurver="$(GetJson "$json" "Version" "$aurversionpkgsname")" + aurversionpkgsverdiff="$(vercmp "$aurversionpkgsaurver" "$aurversionpkgsver")" # not found in AUR nor repo - if [[ ! "$aurversionpkgsaurver" ]]; then - [[ ! " ${errdeps[*]} " =~ " ${aurversionpkgs[$i]} " ]] && errdeps+=("${aurversionpkgs[$i]}") - continue - fi + [[ ! "$aurversionpkgsaurver" && ! " ${errdeps[*]} " =~ " ${aurversionpkgs[$i]} " ]] && + errdeps+=("${aurversionpkgs[$i]}") && continue case "${aurversionpkgs[$i]}" in *">"*|*"<"*|*"="*) # found in AUR but version not correct case "${aurversionpkgs[$i]}" in - *">="*) [[ "$(vercmp "$aurversionpkgsaurver" "$aurversionpkgsver")" -ge 0 ]] && continue;; - *"<="*) [[ "$(vercmp "$aurversionpkgsaurver" "$aurversionpkgsver")" -le 0 ]] && continue;; - *">"*) [[ "$(vercmp "$aurversionpkgsaurver" "$aurversionpkgsver")" -gt 0 ]] && continue;; - *"<"*) [[ "$(vercmp "$aurversionpkgsaurver" "$aurversionpkgsver")" -lt 0 ]] && continue;; - *"="*) [[ "$(vercmp "$aurversionpkgsaurver" "$aurversionpkgsver")" -eq 0 ]] && continue;; + *">="*) [[ "$aurversionpkgsverdiff" -ge 0 ]] && continue;; + *"<="*) [[ "$aurversionpkgsverdiff" -le 0 ]] && continue;; + *">"*) [[ "$aurversionpkgsverdiff" -gt 0 ]] && continue;; + *"<"*) [[ "$aurversionpkgsverdiff" -lt 0 ]] && continue;; + *"="*) [[ "$aurversionpkgsverdiff" -eq 0 ]] && continue;; esac - [[ ! " ${errdeps[*]} " =~ " ${aurversionpkgs[$i]} " ]] && errdeps+=("${aurversionpkgs[$i]}") + [[ ! " ${errdeps[*]} " =~ " ${aurversionpkgs[$i]} " ]] && + errdeps+=("${aurversionpkgs[$i]}") ;; *) continue;; esac @@ -376,9 +381,12 @@ FindDepsAur() { depspkgs+=($(GetJson "$json" "MakeDepends")) [[ "$checkdeps" ]] && depspkgs+=($(GetJson "$json" "CheckDepends")) else - [[ ! "${depspkgsaur[*]}" ]] && depspkgsaurtmp=("${aurpkgs[@]}") || depspkgsaurtmp=("${depspkgsaur[@]}") + [[ ! "${depspkgsaur[*]}" ]] && depspkgsaurtmp=("${aurpkgs[@]}") || + depspkgsaurtmp=("${depspkgsaur[@]}") for i in "${!depspkgsaurtmp[@]}"; do - GetBuiltPkg "$(GetJson "$json" "Name" "${depspkgsaurtmp[$i]}")-$(GetJson "$json" "Version" "${depspkgsaurtmp[$i]}")" "$PKGDEST" + local depAname="$(GetJson "$json" "Name" "${depspkgsaurtmp[$i]}")" + local depAver="$(GetJson "$json" "Version" "${depspkgsaurtmp[$i]}")" + GetBuiltPkg "$depAname-$depAver" "$PKGDEST" if [[ ! "$builtpkg" ]]; then depspkgs+=($(GetJson "$json" "MakeDepends" "${depspkgsaurtmp[$i]}")) [[ "$checkdeps" ]] && depspkgs+=($(GetJson "$json" "CheckDepends")) @@ -388,15 +396,14 @@ FindDepsAur() { fi # remove deps provided by targets - if [[ "${aurpkgsproviders[*]}" ]]; then - depspkgs=($(DiffArr 'aurpkgsproviders' 'depspkgs' -v)) - fi + [[ "${aurpkgsproviders[*]}" ]] && depspkgs=($(DiffArr 'aurpkgsproviders' 'depspkgs' -v)) # workaround for limited RPC support of architecture dependent fields if [[ "${CARCH}" == 'i686' ]]; then depspkgstmp=("${depspkgs[@]}") for i in "${!depspkgstmp[@]}"; do - [[ "${depspkgstmp[$i]}" =~ ^(lib32-|gcc-multilib) ]] && depspkgs=($(printf '%s\n' "${depspkgs[@]}" | sed "s%^${depspkgstmp[$i]}$%%g")) + [[ "${depspkgstmp[$i]}" =~ ^(lib32-|gcc-multilib) ]] && + depspkgs=($(printf '%s\n' "${depspkgs[@]}" | sed "s%^${depspkgstmp[$i]}$%%g")) done fi @@ -411,7 +418,8 @@ FindDepsAur() { 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 [[ "$j" ]]; then depspkgs[$i]="$j" - [[ "$devel" && ! " ${ignoredpkgs[*]} " =~ " $j " && "$j" =~ -$vcs ]] && vcsdepspkgs+=("$j") + [[ "$devel" && ! " ${ignoredpkgs[*]} " =~ " $j " && "$j" =~ -$vcs ]] && + vcsdepspkgs+=("$j") else foreignpkgs+=("${depspkgs[$i]}") fi @@ -454,12 +462,11 @@ FindDepsAur() { unset depspkgs # remove duplicate - if [[ "${depspkgsaur[*]}" ]]; then - depspkgsaur=($(DiffArr 'aurdepspkgs' 'depspkgsaur' -v)) - fi + [[ "${depspkgsaur[*]}" ]] && depspkgsaur=($(DiffArr 'aurdepspkgs' 'depspkgsaur' -v)) # dependency cycle check - [[ "${prevdepspkgsaur[*]}" ]] && [[ "${prevdepspkgsaur[*]}" = "${depspkgsaur[*]}" ]] && Note "e" $"dependency cycle detected (${depspkgsaur[*]})" + [[ "${prevdepspkgsaur[*]}" ]] && [[ "${prevdepspkgsaur[*]}" = "${depspkgsaur[*]}" ]] && + Note "e" $"dependency cycle detected (${depspkgsaur[*]})" if [[ "${depspkgsaur[*]}" ]]; then # store for AUR version check @@ -474,16 +481,15 @@ FindDepsAur() { depspkgsaur=($(printf '%s\n' "${depspkgsaur[@]}" | sort -u)) fi - if [[ "${depspkgsaur[*]}" ]]; then - aurdepspkgs+=("${depspkgsaur[@]}") + [[ "${depspkgsaur[*]}" ]] && aurdepspkgs+=("${depspkgsaur[@]}") && FindDepsAur "${depspkgsaur[@]}" - fi } SortDepsAur() { local i j sortaurpkgs sortdepspkgs sortdepspkgsaur # global checkedsortdepspkgsaur allcheckedsortdepspkgsaur json errdepsnover - [[ ! "${checkedsortdepspkgsaur[*]}" ]] && sortaurpkgs=("${aurpkgs[@]}") || sortaurpkgs=("${checkedsortdepspkgsaur[@]}") + [[ "${checkedsortdepspkgsaur[*]}" ]] && sortaurpkgs=("${checkedsortdepspkgsaur[@]}") || + sortaurpkgs=("${aurpkgs[@]}") unset checkedsortdepspkgsaur for i in "${!sortaurpkgs[@]}"; do @@ -503,7 +509,8 @@ SortDepsAur() { sortdepspkgs[$j]="${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 @@ -534,11 +541,11 @@ 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 [[ ! "${currenterrdep[*]}" ]] && currenterrdep="${tsorterrdeps[0]}" - if [[ ! " ${aurpkgs[*]} " =~ " $nexterrdep " ]]; then nextallerrdeps=($(GetJson "$json" "Depends" "$nexterrdep")) nextallerrdeps+=($(GetJson "$json" "MakeDepends" "$nexterrdep")) @@ -549,10 +556,8 @@ FindDepsAurError() { nextallerrdeps[$i]="${nextallerrdeps[$i]%%[><=]*}" done - if [[ " ${nextallerrdeps[*]} " =~ " $currenterrdep " ]]; then - errdepslist+=("$nexterrdep") + [[ " ${nextallerrdeps[*]} " =~ " $currenterrdep " ]] && errdepslist+=("$nexterrdep") && currenterrdep="${tsorterrdeps[0]}" - fi tsorterrdeps=("${tsorterrdeps[@]:1}") FindDepsAurError "${tsorterrdeps[@]}" else @@ -566,9 +571,7 @@ FindDepsAurError() { nextallerrdeps[$j]="${nextallerrdeps[$j]%%[><=]*}" done - if [[ " ${nextallerrdeps[*]} " =~ " $currenterrdep " ]]; then - errdepslist+=("${aurpkgs[$i]}") - fi + [[ " ${nextallerrdeps[*]} " =~ " $currenterrdep " ]] && errdepslist+=("${aurpkgs[$i]}") done fi } @@ -592,16 +595,11 @@ FindDepsRepo() { repodepspkgstmp=($("$pacmanbin" -T -- "${allrepodepspkgs[@]}" | sort -u)) # remove duplicate - if [[ "${repodepspkgstmp[*]}" ]]; then + [[ "${repodepspkgstmp[*]}" ]] && repodepspkgstmp=($(DiffArr 'repodepspkgs' 'repodepspkgstmp' -v)) - fi - if [[ "${repodepspkgstmp[*]}" ]]; then - repodepspkgs+=("${repodepspkgstmp[@]}") - - repodeps=("${repodepspkgstmp[@]}") - FindDepsRepo "${repodeps[@]}" - fi + [[ "${repodepspkgstmp[*]}" ]] && repodepspkgs+=("${repodepspkgstmp[@]}") && + repodeps=("${repodepspkgstmp[@]}") && FindDepsRepo "${repodeps[@]}" } FindDepsRepoProvider() { @@ -614,13 +612,15 @@ FindDepsRepoProvider() { # get non installed repo deps unset allproviderrepodepspkgs providerrepodepspkgstmp - [[ "${providerspkgs[*]}" ]] && allproviderrepodepspkgs=($(expac -S -1 '%E' "${providerspkgs[@]}")) # no version check needed as all deps are binary - [[ "${allproviderrepodepspkgs[*]}" ]] && providerrepodepspkgstmp=($("$pacmanbin" -- -T "${allproviderrepodepspkgs[@]}" | sort -u)) + [[ "${providerspkgs[*]}" ]] && + allproviderrepodepspkgs=($(expac -S -1 '%E' "${providerspkgs[@]}")) + # no version check needed as all deps are binary + [[ "${allproviderrepodepspkgs[*]}" ]] && + providerrepodepspkgstmp=($("$pacmanbin" -- -T "${allproviderrepodepspkgs[@]}" | sort -u)) # remove duplicate - if [[ "${providerrepodepspkgstmp[*]}" ]]; then + [[ "${providerrepodepspkgstmp[*]}" ]] && providerrepodepspkgstmp=($(DiffArr 'repodepspkgs' 'providerrepodepspkgstmp' -v)) - fi if [[ "${providerrepodepspkgstmp[*]}" ]]; then repodepspkgs+=("${providerrepodepspkgstmp[@]}") @@ -656,18 +656,16 @@ IgnoreDepsChecks() { fi if [[ "$isignored" ]]; then - if [[ ! "$upgrade" ]]; then - Note "w" $"skipping target: ${colorW}$i${reset}" - else + [[ ! "$upgrade" ]] && Note "w" $"skipping target: ${colorW}$i${reset}" || Note "w" $"${colorW}$i${reset}: ignoring package upgrade" - fi Note "e" $"Unresolved dependency '${colorW}$i${reset}'" fi done for i in "${aurdepspkgs[@]}"; do # skip already checked dependencies [[ " ${aurpkgs[*]} " =~ " $i " ]] && continue - [[ " ${rmaurpkgs[*]} " =~ " $i " ]] && Note "e" $"Unresolved dependency '${colorW}$i${reset}'" + [[ " ${rmaurpkgs[*]} " =~ " $i " ]] && + Note "e" $"Unresolved dependency '${colorW}$i${reset}'" unset isignored if [[ " ${ignoredpkgs[*]} " =~ " $i " ]]; then @@ -691,11 +689,8 @@ IgnoreDepsChecks() { Note "e" $"Unresolved dependency '${colorW}$i${reset}'" fi else - if [[ ! "$upgrade" ]]; then + [[ "$upgrade" ]] && Note "w" $"${colorW}$i${reset}: ignoring package upgrade" || Note "w" $"skipping target: ${colorW}$i${reset}" - else - Note "w" $"${colorW}$i${reset}: ignoring package upgrade" - fi Note "e" $"Unresolved dependency '${colorW}$i${reset}'" fi fi @@ -727,13 +722,15 @@ ProviderChecks() { case "${providersdeps[$i]}" in *">"*|*"<"*|*"="*) for j in "${!providersdepsSname[@]}"; do + unset providersdepverdiff + providersdepsverdiff="$(vercmp "$providersdepsver" "${providersdepsSver[j]}")" # found in repo but version not correct case "${providersdeps[$i]}" in - *">="*) [[ $(vercmp "$providersdepsver" "${providersdepsSver[j]}") -ge 0 ]] && continue;; - *"<="*) [[ $(vercmp "$providersdepsver" "${providersdepsSver[j]}") -le 0 ]] && continue;; - *">"*) [[ $(vercmp "$providersdepsver" "${providersdepsSver[j]}") -gt 0 ]] && continue;; - *"<"*) [[ $(vercmp "$providersdepsver" "${providersdepsSver[j]}") -lt 0 ]] && continue;; - *"="*) [[ $(vercmp "$providersdepsver" "${providersdepsSver[j]}") -eq 0 ]] && continue;; + *">="*) [[ "$providersdepsverdiff" -ge 0 ]] && continue;; + *"<="*) [[ "$providersdepsverdiff" -le 0 ]] && continue;; + *">"*) [[ "$providersdepsverdiff" -gt 0 ]] && continue;; + *"<"*) [[ "$providersdepsverdiff" -lt 0 ]] && continue;; + *"="*) [[ "$providersdepsverdiff" -eq 0 ]] && continue;; esac providersdepsnover+=("${providersdepsSname[j]}") done @@ -784,7 +781,9 @@ ProviderChecks() { case "$nb" in [0-9]|[0-9][0-9]) if [[ "$nb" -lt 0 || "$nb" -ge "${#providers[@]}" ]]; then - echo && Note "f" $"invalid value: $nb is not between 0 and $providersnb" && ((i--)) + echo + Note "f" $"invalid value: $nb is not between 0 and $providersnb" + ((i--)) else break fi;; @@ -905,14 +904,15 @@ ConflictChecks() { repodepsconflictsname="${repodepsconflicts[$i]%%[><=]*}" repodepsconflictsver="${repodepsconflicts[$i]##*[><=]}" [[ "$repodepsconflictsname" ]] && localver="$(expac -Q '%v' "$repodepsconflictsname")" + repodepsconflictsverdiff="$(vercmp "$repodepsconflictsver" "$localver")" if [[ "$localver" ]]; then case "${repodepsconflicts[$i]}" in - *">="*) [[ $(vercmp "$repodepsconflictsver" "$localver") -ge 0 ]] && continue;; - *"<="*) [[ $(vercmp "$repodepsconflictsver" "$localver") -le 0 ]] && continue;; - *">"*) [[ $(vercmp "$repodepsconflictsver" "$localver") -gt 0 ]] && continue;; - *"<"*) [[ $(vercmp "$repodepsconflictsver" "$localver") -lt 0 ]] && continue;; - *"="*) [[ $(vercmp "$repodepsconflictsver" "$localver") -eq 0 ]] && continue;; + *">="*) [[ "$repodepsconflictsverdiff" -ge 0 ]] && continue;; + *"<="*) [[ "$repodepsconflictsverdiff" -le 0 ]] && continue;; + *">"*) [[ "$repodepsconflictsverdiff" -gt 0 ]] && continue;; + *"<"*) [[ "$repodepsconflictsverdiff" -lt 0 ]] && continue;; + *"="*) [[ "$repodepsconflictsverdiff" -eq 0 ]] && continue;; esac checkedrepodepsconflicts+=("$repodepsconflictsname") fi @@ -961,8 +961,10 @@ ReinstallChecks() { # global depsAmain depsAtmp=("${depsAname[@]}") for i in "${!depsAtmp[@]}"; do - [[ ! " ${aurpkgs[*]} " =~ " ${depsAname[$i]} " || " ${aurconflictingpkgs[*]} " =~ " ${depsAname[$i]} " ]] && continue - [[ ! "${depsQver[$i]}" || "${depsQver[$i]}" = '#' || $(vercmp "${depsAver[$i]}" "${depsQver[$i]}") -gt 0 ]] && continue + [[ ! " ${aurpkgs[*]} " =~ " ${depsAname[$i]} " ]] || + [[ " ${aurconflictingpkgs[*]} " =~ " ${depsAname[$i]} " ]] && continue + [[ ! "${depsQver[$i]}" || "${depsQver[$i]}" = '#' ]] || + [[ "$(vercmp "${depsAver[$i]}" "${depsQver[$i]}")" -gt 0 ]] && continue [[ ! $installpkg && ! " ${aurdepspkgs[*]} " =~ " ${depsAname[$i]} " ]] && continue if [[ "${depsAname[$i]}" =~ -$vcs ]]; then Note "w" $"${colorW}${depsAname[$i]}${reset} latest revision -- fetching" @@ -976,8 +978,8 @@ ReinstallChecks() { 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[@]}" } @@ -993,7 +995,7 @@ OrphanChecks() { local i # global depsAname depsAver depsAmain for i in "${!depsAname[@]}"; do - [[ "${depsAmain[$i]}" == 'null' ]] && Note "w" $"${colorW}${depsAname[$i]}-${depsAver[$i]}${reset} is ${colorR}orphaned${reset} in AUR" + [[ "${depsAmain[$i]}" == 'null' ]] &&Note "w" $"${colorW}${depsAname[$i]}-${depsAver[$i]}${reset} is ${colorR}orphaned${reset} in AUR" done } @@ -1022,12 +1024,15 @@ Prompt() { for i in "${!depsAname[@]}"; do [[ ! "$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 [[ "$(pacman-conf VerbosePkgLists)" ]]; then - straurname=$"AUR Packages (${#deps[@]})"; strreponame=$"Repo Packages (${#repodepspkgs[@]})"; stroldver=$"Old Version"; strnewver=$"New Version"; strsize=$"Download Size" + 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")" @@ -1087,18 +1092,14 @@ DownloadPkgs() { GetPkgbase "$@" # no results check - if [[ ! "${basepkgs[*]}" ]]; then - Note "e" $"no results found" - return - fi + [[ ! "${basepkgs[*]}" ]] && Note "e" $"no results found" # reset for i in "${basepkgs[@]}"; do - cd "$clonedir" || exit 1 if [[ -d "$i" ]]; then - cd "$clonedir/$i" || exit 1 - git reset --hard HEAD -q # updated pkgver of vcs packages prevent pull - [[ "$displaybuildfiles" = diff ]] && git rev-parse HEAD > ".git/HEAD.prev" + git -C "$clonedir/$i" reset --hard HEAD -q # updated pkgver of vcs packages block pull + [[ "$displaybuildfiles" = diff ]] && + git -C "$clonedir/$i" rev-parse HEAD > "$clonedir/$i/.git/HEAD.prev" fi done @@ -1111,59 +1112,64 @@ DownloadPkgs() { EditPkgs() { local viewed i j erreditpkg # global cachedpkgs installscripts editor + diffcmd() { + git diff $2 --no-ext-diff <"$clonedir/$1/.git/HEAD.prev" -- . ':!\.SRCINFO' + } [[ "$noedit" ]] && return unset viewed for i in "$@"; do [[ " ${cachedpkgs[*]} " =~ " $i " ]] && continue - cd "$clonedir/$i" || exit 1 + local prevcomm="$(<"$clonedir/$i/.git/HEAD.prev")" GetInstallScripts "$i" if [[ ! "$edit" ]]; then - if [[ ! "$displaybuildfiles" = none ]]; then - if [[ "$displaybuildfiles" = diff && -e ".git/HEAD.prev" ]]; then - # show diff - if [[ "$(git diff --no-ext-diff "$(cut -f1 .git/HEAD.prev)" -- . ':!\.SRCINFO')" ]]; then - if Proceed "y" $"View $i build files diff?"; then - git diff --no-ext-diff "$(cut -f1 .git/HEAD.prev)" -- . ':!\.SRCINFO' || erreditpkg+=("$i") - Note "i" $"${colorW}$i${reset} build files diff viewed" - viewed=1 - fi - else - Note "w" $"${colorW}$i${reset} build files are up-to-date -- skipping" + if [[ "$displaybuildfiles" = diff && -e "$clonedir/$i/.git/HEAD.prev" ]]; then + # show diff + if ! git diff --quiet --no-ext-diff "$prevcomm" -- . ':!\.SRCINFO'; then + if Proceed "y" $"View $i build files diff?"; then + git diff --no-ext-diff "$prevcomm" -- . ':!\.SRCINFO' || erreditpkg+=("$i") + Note "i" $"${colorW}$i${reset} build files diff viewed"; viewed=1 fi else - # show pkgbuild - if Proceed "y" $"View $i PKGBUILD?"; then - if [[ -e "PKGBUILD" ]]; then - "$editor" "PKGBUILD" && Note "i" $"${colorW}$i${reset} PKGBUILD viewed" || erreditpkg+=("$i") - else - Note "e" $"Could not open ${colorW}$i${reset} PKGBUILD" - fi + Note "w" $"${colorW}$i${reset} build files are up-to-date -- skipping" + fi + elif [[ ! "$displaybuildfiles" = none ]]; then + # show pkgbuild + if Proceed "y" $"View $i PKGBUILD?"; then + if [[ -e "$clonedir/$i/PKGBUILD" ]]; then + "$editor" "$clonedir/$i/PKGBUILD" && + Note "i" $"${colorW}$i${reset} PKGBUILD viewed" || erreditpkg+=("$i") + else + Note "e" $"Could not open ${colorW}$i${reset} PKGBUILD" fi - # show install script - if [[ "${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" || erreditpkg+=("$i") - else - Note "e" $"Could not open ${colorW}$j${reset} script" - fi + fi + # show install script + if [[ "${installscripts[*]}" ]]; then + for j in "${installscripts[@]}"; do + if Proceed "y" $"View $j script?"; then + if [[ -e "$clonedir/$i/$j" ]]; then + "$editor" "$clonedir/$i/$j" && + Note "i" $"${colorW}$j${reset} script viewed" || + erreditpkg+=("$i") + else + Note "e" $"Could not open ${colorW}$j${reset} script" fi - done - fi + fi + done fi fi else # show pkgbuild and install script - if [[ -e "PKGBUILD" ]]; then - "$editor" "PKGBUILD" && Note "i" $"${colorW}$i${reset} PKGBUILD viewed" || erreditpkg+=("$i") + if [[ -e "$clonedir/$i/PKGBUILD" ]]; then + "$editor" "$clonedir/$i/PKGBUILD" && + Note "i" $"${colorW}$i${reset} PKGBUILD viewed" || erreditpkg+=("$i") else Note "e" $"Could not open ${colorW}$i${reset} PKGBUILD" fi if [[ "${installscripts[*]}" ]]; then for j in "${installscripts[@]}"; do - if [[ -e "$j" ]]; then - "$editor" "$j" && Note "i" $"${colorW}$j${reset} script viewed" || erreditpkg+=("$i") + if [[ -e "$clonedir/$i/$j" ]]; then + "$editor" "$clonedir/$i/$j" && + Note "i" $"${colorW}$j${reset} script viewed" || erreditpkg+=("$i") else Note "e" $"Could not open ${colorW}$j${reset} script" fi @@ -1212,11 +1218,13 @@ MakePkgs() { # 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}')) @@ -1231,11 +1239,13 @@ MakePkgs() { unset builtpkg if [[ ! "${basepkgs[$i]}" =~ -$vcs ]]; then for j in "${pkgsdepslist[@]}"; do - [[ "$PKGDEST" && ! "$rebuild" ]] && GetBuiltPkg "$j-$(GetJson "$json" "Version" "$j")" "$PKGDEST" + [[ "$PKGDEST" && ! "$rebuild" ]] && + GetBuiltPkg "$j-$(GetJson "$json" "Version" "$j")" "$PKGDEST" done fi - # install vcs clients (checking pkgbase extension only does not take fetching specific commit into account) + # install vcs clients (checking pkgbase extension only does not take fetching specific + # commit into account) unset vcsclients vcsclients=($(GetJson "$json" "MakeDepends" "${basepkgs[$i]}" | grep -E "$vcs")) for j in "${vcsclients[@]}"; do @@ -1269,7 +1279,7 @@ MakePkgs() { Note "f" $"failed to verify integrity or prepare ${colorW}$i${reset} package" done # remove sudo lock - rm -f "$tmpdir/pacaur.sudov.lck" + rm -f "${tmpdir:?}/pacaur.sudov.lck" exit 1 fi @@ -1295,26 +1305,23 @@ MakePkgs() { cd "$clonedir/${basepkgs[$i]}" || exit 1 # retrieve updated version - aurdevelpkgsAver="$(makepkg --packagelist | awk -F "-" '{print $(NF-2)"-"$(NF-1)}' | head -1)" + aurdevelpkgsAver="$(makepkg --packagelist | awk -F "-" '{print $(NF-2)"-"$(NF-1)}' | + head -1)" # build devel if necessary only (supported protocols only) if [[ "${basepkgs[$i]}" =~ -(bzr|git|hg|svn|daily.*|nightly.*)$ ]]; then # check split packages update unset basepkgsupdate checkpkgsdepslist for j in "${pkgsdepslist[@]}"; do aurdevelpkgsQver="$(expac -Qs '%v' "^$j$" | head -1)" - if [[ "$aurdevelpkgsQver" && "$(vercmp "$aurdevelpkgsQver" "$aurdevelpkgsAver")" -ge 0 && "$needed" && ! "$rebuild" ]]; then - Note "w" $"${colorW}$j${reset} is up-to-date -- skipping" - continue + if [[ "$needed" && ! "$rebuild" && "$aurdevelpkgsQver" ]] && + [[ "$(vercmp "$aurdevelpkgsQver" "$aurdevelpkgsAver")" -ge 0 ]]; then + Note "w" $"${colorW}$j${reset} is up-to-date -- skipping" && continue else basepkgsupdate='true' checkpkgsdepslist+=("$j") fi done - if [[ "$basepkgsupdate" ]]; then - pkgsdepslist=("${checkpkgsdepslist[@]}") - else - continue - fi + [[ "$basepkgsupdate" ]] && pkgsdepslist=("${checkpkgsdepslist[@]}") || continue fi # check package cache @@ -1325,7 +1332,8 @@ MakePkgs() { 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 + [[ ! " ${aurpkgs[*]} " =~ " $j " ]] && + sudo "$pacmanbin" -D "$j" --asdeps "${pacopts[@]}" &>/dev/null else Note "w" $"Package ${colorW}$j${reset} already available in cache" fi @@ -1356,16 +1364,13 @@ MakePkgs() { fi # error check - if (($? > 0)); then - errmakepkg+=("${pkgsdeps[$i]}") - continue # skip install - fi + (($? > 0)) && errmakepkg+=("${pkgsdeps[$i]}") && continue # skip install # retrieve filename unset builtpkgs builtdepspkgs for j in "${pkgsdepslist[@]}"; do unset builtpkg - if [[ $PKGDEST ]]; then + if [[ "$PKGDEST" ]]; then GetBuiltPkg "$j-$aurdevelpkgsAver" "$PKGDEST" else GetBuiltPkg "$j-$aurdevelpkgsAver" "$clonedir/${basepkgs[$i]}" @@ -1392,18 +1397,18 @@ MakePkgs() { # remove AUR deps if [[ ! $installpkg ]]; then [[ "${aurdepspkgs[*]}" ]] && aurdepspkgs=($(expac -Q '%n' "${aurdepspkgs[@]}")) - if [[ "${aurdepspkgs[*]}" ]]; then - Note "i" $"Removing installed AUR dependencies..." + [[ "${aurdepspkgs[*]}" ]] && Note "i" $"Removing installed AUR dependencies..." && sudo "$pacmanbin" -Rsn "${aurdepspkgs[@]}" --noconfirm - fi # readd removed conflicting packages - [[ "${aurconflictingpkgsrm[*]}" ]] && sudo "$pacmanbin" -S "${aurconflictingpkgsrm[@]}" --ask 36 --asdeps --needed --noconfirm - [[ "${repoconflictingpkgsrm[*]}" ]] && sudo "$pacmanbin" -S "${repoconflictingpkgsrm[@]}" --ask 36 --asdeps --needed --noconfirm + [[ "${aurconflictingpkgsrm[*]}" ]] && + sudo "$pacmanbin" -S "${aurconflictingpkgsrm[@]}" --ask 36 --asdeps --needed --noconfirm + [[ "${repoconflictingpkgsrm[*]}" ]] && + sudo "$pacmanbin" -S "${repoconflictingpkgsrm[@]}" --ask 36 --asdeps --needed --noconfirm fi # remove locks - rm "$tmpdir/pacaur.build.lck" - rm -f "$tmpdir/pacaur.sudov.lck" + rm "${tmpdir:?}/pacaur.build.lck" + rm -f "${tmpdir:?}/pacaur.sudov.lck" # new orphan and optional packages check orphanpkgs=($("$pacmanbin" -Qdtq)) @@ -1432,9 +1437,7 @@ CheckUpdates() { local aurpkgsQignore aurdevelpkgsAver aurdevelpkgsQver aurpkgsQoodAver # global aur repo - if [[ ! "$aur" ]]; then - "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}"; exitrepo=$? - fi + [[ ! "$aur" ]] && "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}"; exitrepo=$? GetIgnoredPkgs @@ -1446,7 +1449,8 @@ CheckUpdates() { aurpkgsAver=($(GetJson "$json" "Version")) 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 @@ -1457,16 +1461,19 @@ CheckUpdates() { [[ "$i" =~ -$vcs ]]&& aurpkgsQood+=("$i") done else - foreignpkgsbase=($(expac -Q '%n %e' "${foreignpkgs[@]}" | awk '{if ($2 == "(null)") print $1; else print $2}')) + 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 + [[ ! -d "$clonedir/${foreignpkgsbase[$i]}" ]] && + DownloadPkgs "${foreignpkgsbase[$i]}" &>/dev/null cd "$clonedir/${foreignpkgsbase[$i]}" || exit 1 # 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)}' | head -1)" + aurdevelpkgsAver="$(makepkg --packagelist | + awk -F "-" '{print $(NF-2)"-"$(NF-1)}' | head -1)" aurdevelpkgsQver="$(expac -Qs '%v' "^${foreignpkgsbase[$i]}$" | head -1)" if [[ "$(vercmp "$aurdevelpkgsQver" "$aurdevelpkgsAver")" -ge 0 ]]; then continue @@ -1505,18 +1512,11 @@ CheckUpdates() { fi fi # exit code - if [[ "$exitrepo" && "$exitaur" ]]; then - [[ "$exitrepo" -eq 0 || "$exitaur" -eq 0 ]] && exit 0 || exit 1 - elif [[ "$exitrepo" ]]; then - [[ "$exitrepo" -eq 0 ]] && exit 0 || exit 1 - elif [[ "$exitaur" ]]; then - [[ "$exitaur" -eq 0 ]] && exit 0 || exit 1 - else - exit 1 - fi + [[ "$exitrepo" = 0 || "$exitaur" = 0 ]] && exit 0 || exit 1 } CleanCache() { + local i cachedir=($(pacman-conf CacheDir)) [[ "${cachedir[*]}" ]] && cachedir=("${cachedir[@]%/}") && PKGDEST="${PKGDEST%/}" if [[ "$PKGDEST" && ! " ${cachedir[*]} " =~ " $PKGDEST " ]]; then @@ -1527,34 +1527,31 @@ CleanCache() { 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"-* + [[ "$i" != "$(expac -Q '%n-%v' "$pkgname")" ]] && rm "${PKGDEST:?}/$i"-* done fi else - if ! Proceed "n" $"Do you want to remove ALL files from AUR cache?"; then - printf "%s\n" $"removing all files from AUR cache..." - rm "$PKGDEST"/* &>/dev/null - fi + Proceed "n" $"Do you want to remove ALL files from AUR cache?" || + printf "%s\n" $"removing all files from AUR cache..." && + rm "${PKGDEST:?}"/* &>/dev/null fi fi if [[ -d "$SRCDEST" ]]; then - [[ "$ccount" -eq 1 ]] && printf "\n%s\n %s\n" $"Sources to keep:" $"All development packages sources" + [[ "$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 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 - fi + Proceed "y" $"Do you want to remove all non development files from AUR source cache?" && + printf "%s\n" $"removing non development files from source cache..." && + rm -f "${SRCDEST:?}"/* &>/dev/null else - if ! Proceed "n" $"Do you want to remove ALL files from AUR source cache?"; then - printf "%s\n" $"removing all files from AUR source cache..." - rm -rf "$SRCDEST"/* &>/dev/null - fi + Proceed "n" $"Do you want to remove ALL files from AUR source cache?" || + printf "%s\n" $"removing all files from AUR source cache..." && + rm -rf "${SRCDEST:?}"/* fi fi if [[ -d "$clonedir" ]]; then - cd "$clonedir" || exit 1 if [[ "$ccount" -eq 1 ]]; then if [[ ! "${pkgs[*]}" ]]; then printf "\n%s\n %s\n" $"Clones to keep:" $"All locally installed clones" @@ -1564,29 +1561,32 @@ 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)" | + awk '{if ($2 == "(null)") print $1; else print $2}')) # get target if [[ "${pkgs[*]}" ]]; then pkgsbase=($(expac -Q %e "${pkgs[@]}")) aurpkgsbase=($(DiffArr 'pkgsbase' '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..." - for clone in "${aurpkgsbase[@]}"; do - [[ -d "$clonedir/$clone" ]] && rm -rf "$clonedir/$clone" + for i in "${aurpkgsbase[@]}"; do + [[ -d "$clonedir/$i" ]] && rm -rf "${clonedir:?}/$i" done fi else 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" + for i in "${clonedir:?}/"*; do + [[ -d "$i" && ! " ${foreignpkgsbase[*]} " =~ " $i " ]] && + rm -rf "${clonedir:?}/$i" done fi 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 - [[ -d "$clonedir/$clone" ]] && git --git-dir="$clone/.git" --work-tree="$clone" clean -ffdx &>/dev/null + for i in "${clonedir:?}/"*; do + [[ -d "$i" ]] && + git --git-dir="$i/.git" --work-tree="$i" clean -ffdx &>/dev/null done fi fi @@ -1594,8 +1594,8 @@ CleanCache() { else if ! Proceed "n" $"Do you want to remove ALL clones from AUR clone directory?"; then printf "%s\n" $"removing all clones from AUR clone cache..." - for clone in *; do - [[ -d "$clonedir/$clone" ]] && rm -rf "$clonedir/$clone" + for i in "${clonedir:?}/"*; do + [[ -d "$i" ]] && rm -rf "$i" done fi fi @@ -1629,10 +1629,9 @@ 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,,.gz,.bz2,.lzo,.lrz,.Z}; do builtpkg="$2/$1-${CARCH}$pkgext" - [[ ! -f "$builtpkg" ]] && builtpkg="$2/$1-any$pkgext" - [[ -f "$builtpkg" ]] && break; + [[ -f "$builtpkg" ]] && break || builtpkg="$2/$1-any$pkgext" done [[ ! -f "$builtpkg" ]] && unset builtpkg } @@ -1686,10 +1685,7 @@ Proceed() { [[ "$TERM" = dumb || "$cleancache" ]] && local readline=1 case "$1" in y) printf "${colorB}%s${reset} ${colorW}%s${reset}" "::" "$2 [Y/n] " - if [[ "$noconfirm" ]]; then - echo - return 0 - fi + [[ "$noconfirm" ]] && echo && return 0 while true; do if [[ "$readline" ]]; then read -r answer @@ -1703,10 +1699,7 @@ Proceed() { esac done;; n) printf "${colorB}%s${reset} ${colorW}%s${reset}" "::" "$2 [y/N] " - if [[ "$noconfirm" ]]; then - echo - return 0 - fi + [[ "$noconfirm" ]] && echo && return 0 while true; do if [[ "$readline" ]]; then read -r answer @@ -1869,7 +1862,8 @@ 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") if [[ ! "$color" = never ]]; then @@ -1891,9 +1885,8 @@ fi Note "e" $"${colorW}\$VISUAL${reset} and ${colorW}\$EDITOR${reset} environment variables not set or defined ${colorW}editor${reset} not found" [[ "$PACMAN" = "${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" -[[ ! "${pkgs[*]}" && ! "$refresh" && ! "$upgrade" && ! "$cleancache" ]] && [[ "$operation" =~ (sync|edit) ]] && +[[ ! -w "$clonedir" ]] && Note "e" $"${colorW}$clonedir${reset} does not have write permission" +[[ ! "${pkgs[*]}" && ! "${refresh}${upgrade}${cleancache}" && "$operation" =~ (sync|edit) ]] && Note "e" $"no targets specified (use -h for help)" [[ ! "${pkgs[*]}" && " ${pacmanarg[*]} " =~ ' '-[RU]' ' && ! " ${pacmanarg[*]} " =~ ' -h ' ]] && Note "e" $"no targets specified (use -h for help)" @@ -1902,8 +1895,7 @@ fi # operations case "$operation" in - edit) - # edit (-e) handling + edit) # edit (-e) handling GetPkgbase "${pkgs[@]}" EditPkgs "${pkgsbase[@]}" exit;; @@ -1916,22 +1908,14 @@ case "$operation" in else "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" -- "${pkgs[@]}" fi + exitrepo=$? fi - exitrepo=$? if [[ ! "$repo" ]]; then auracle search "${auropts[@]}" -- "${pkgs[@]}" exitaur=$? fi # exit code - if [[ "$exitrepo" && "$exitaur" ]]; then - [[ "$exitrepo" -eq 0 || "$exitaur" -eq 0 ]] && exit 0 || exit 1 - elif [[ "$exitrepo" ]]; then - [[ "$exitrepo" -eq 0 ]] && exit 0 || exit 1 - elif [[ "$exitaur" ]]; then - [[ "$exitaur" -eq 0 ]] && exit 0 || exit 1 - else - exit 1 - fi + [[ "$exitrepo" = 0 || "$exitaur" = 0 ]] && exit 0 || exit 1 # info (-Si, -i) handling elif [[ "$info" ]]; then if [[ ! "${pkgs[*]}" ]]; then @@ -1940,14 +1924,15 @@ case "$operation" in 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[@]}" - if [[ ! "$aur" ]]; then + [[ ! "$aur" ]] && Note "w" $"Package(s) ${colorW}${aurpkgs[*]}${reset} not found in repositories, trying ${colorM}AUR${reset}..." - fi auracle info "${auropts[@]}" -- "${aurpkgs[@]}" fi # clean (-Sc) handling @@ -1972,7 +1957,8 @@ case "$operation" in 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}..." @@ -1981,15 +1967,14 @@ case "$operation" in fi exit;; upgrades) CheckUpdates "${pkgs[@]}";; # upgrades (-Qu) handling - *) # others operations handling - if [[ " ${pacmanarg[*]} " =~ ' -F ' && " ${pacmanarg[*]} " =~ ' -y ' ]]; then + *) if [[ "${pkgs[*]}" || " ${pacmanarg[*]} " =~ ' -F ' && " ${pacmanarg[*]} " =~ ' -y ' ]]; then sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" -- "${pkgs[@]}" - elif [[ ! "${pkgs[*]}" || " ${pacmanarg[*]} " =~ ' '-[DFQTglp]' ' && ! "$asdeps" && ! "$asexplicit" ]]; then + elif [[ " ${pacmanarg[*]} " =~ ' '-[DFQTglp]' ' && ! "${asdeps}${asexplicit}" ]]; then "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" -- "${pkgs[@]}" else sudo "$pacmanbin" "${pacmanarg[@]}" "${pacopts[@]}" -- "${pkgs[@]}" fi - exit;; + exit;; # others operations handling esac # vim:set ts=4 sw=4 et: |