diff options
Diffstat (limited to 'src/aur')
-rwxr-xr-x | src/aur | 74 |
1 files changed, 45 insertions, 29 deletions
@@ -47,51 +47,66 @@ main() { load_files libretools check_vars libretools DIFFTOOL || exit 1 + local startdir="$(pwd)" local missing_deps=() local ret=0 - for _pkg in "$@"; do - - # Remove the version - _pkg="${_pkg%%[<>=]*}" - - if [[ -f "${_pkg}/PKGBUILD" ]]; then - warning "${_pkg} already existed." + local pkg + local copy_new + local copy_old + for pkg in "$@"; do + pkg="${pkg%%[<>=]*}" # remove the version + msg "Processing package: %s" "$pkg" + copy_new="$startdir/$pkg" + copy_old= + + if [[ -f "${copy_new}/PKGBUILD" ]]; then + warning "%s already exists, will compare with new version." "$pkg" # Store our copy of the PKGBUILD dir - _diff="${PWD}/${_pkg}" - pushd $(mktemp --tmpdir -d ${_pkg}.XXXX) &>/dev/null - msg2 "Downloading PKGBUILD into ${PWD} for diff" + copy_old=$copy_new + copy_new="$(mktemp --tmpdir -d aur-${pkg}.new.XXXX)/$pkg" + cd "${copy_new%/*}" fi - msg "Downloading $_pkg..." - local url=https://aur.archlinux.org/packages/${_pkg:0:2}/${_pkg}/$_pkg.tar.gz + msg2 "Downloading" + local url="https://aur.archlinux.org/packages/${pkg:0:2}/$pkg/$pkg.tar.gz" set -o pipefail - if ! wget -O- "$url" | bsdtar xf -; then + if ! wget -O- -q "$url" | bsdtar xf -; then ret=$(($ret|2)) - error "Couldn't get $_pkg" + error "Couldn't get %s" "$pkg" continue fi set +o pipefail - pushd $_pkg &>/dev/null - - if [[ ! -z $_diff ]]; then + if [[ -n $copy_old ]]; then msg2 "Diffing files" + cd "$copy_new" + # Diff all files with our difftool + local diffed=false for file in *; do - "${DIFFTOOL}" "${_diff}/${file}" "${file}" + if ! cmp -s "${copy_old}/${file}" "${copy_new}/${file}" ; then + warning "%s != %s" "${copy_old}/${file}" "${copy_new}/${file}" + diffed=true + "${DIFFTOOL}" "${copy_old}/${file}" "${copy_new}/${file}" + fi done - read -p "Press enter to continue." + if $diffed; then + read -p "Press enter to continue." + fi # Go back to our copy to continue working - pushd "${_diff}" &>/dev/null + cd "$copy_old" + rm -rf -- "${copy_new%/*}" + else + cd "$copy_new" fi . PKGBUILD ################################################################ - pkgbuild-check-nonfree + pkgbuild-check-nonfree -c case $? in 0) :;; 15) warning "This PKGBUILD links to known unfree packages";; @@ -103,7 +118,7 @@ main() { local s=0 pkgbuild-check-licenses || s=$? for i in 1 2 4; do - if [[ $s -eq $(($s & $i)) ]]; then + if [[ $i -eq $(($s & $i)) ]]; then case $i in 1) warning "pkgbuild-check-licenses encountered an error";; 2) warning "This PKGBUILD has an uncommon license";; @@ -115,31 +130,32 @@ main() { ################################################################ - _deps=( + local _deps=( # depends "${depends[@]}" "${makedepends[@]}" "${checkdepends[@]}" # mksource depends "${mkdepends[@]}" "${mkmakedepends[@]}" "${mkcheckdepends[@]}" ) + local _dep + msg2 "Checking dependencies" for _dep in "${_deps[@]}"; do _dep=${_dep/[<>=]*/} if ! is_built $_dep; then if ! pacman -Sddp "$_dep" &>/dev/null ; then - msg2 "$_dep will be get from AUR" + plain "%s: will be downloaded from AUR" "$_dep" missing_deps+=($_dep) fi else - msg2 "$_dep is on repos" + plain "%s: is on repos" "$_dep" fi done - - popd &>/dev/null + cd "$startdir" done if [[ ${#missing_deps[*]} -gt 0 ]]; then - msg2 "Retrieving missing deps: %s" "${missing_deps[*]}" + msg "Retrieving missing deps: %s" "${missing_deps[*]}" "$0" "${missing_deps[@]}" - ret=$(($ret|2)) + ret=$(($ret|$?)) fi return $ret; } |