diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2019-03-07 21:31:58 -0500 |
---|---|---|
committer | Levente Polyak <anthraxx@archlinux.org> | 2019-08-09 19:41:52 +0200 |
commit | c14338c0fe71a74f5e56b4f3af7c548fe0928e15 (patch) | |
tree | c67ac0720a573444f592d795f6c7bb00e91889f8 | |
parent | 8dbf95cdd4858cccf43f7f176b44a0c1121df07b (diff) | |
download | devtools-c14338c0fe71a74f5e56b4f3af7c548fe0928e15.tar.xz |
checkpkg: implement comparison against alternative targets
This allows comparing the currently built set of packages against
targets named by filename, url, or pkgname. One example use is to
compare a package against a different version that was never in the
repos; another example use is to compare a *-git package against the
non-git version.
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
-rw-r--r-- | checkpkg.in | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/checkpkg.in b/checkpkg.in index e0e1f83..335174c 100644 --- a/checkpkg.in +++ b/checkpkg.in @@ -36,6 +36,8 @@ STARTDIR=$(pwd) TEMPDIR=$(mktemp -d --tmpdir checkpkg-script.XXXX) for _pkgname in "${pkgname[@]}"; do + comparepkg=$_pkgname + pkgurl= target_pkgver=$(get_full_version "$_pkgname") if ! pkgfile=$(find_cached_package "$_pkgname" "$target_pkgver" "$CARCH"); then die 'tarball not found for package: %s' "${_pkgname}-$target_pkgver" @@ -43,16 +45,29 @@ for _pkgname in "${pkgname[@]}"; do ln -s "$pkgfile" "$TEMPDIR" - pkgurl=$(pacman -Spdd --print-format '%l' --noconfirm "$_pkgname") || - die "Couldn't download previous package for %s." "$_pkgname" + if (( $# )); then + case $1 in + /*|*/*) + pkgurl=file://$(readlink -m "$1") ;; + *.pkg.tar*) + pkgurl=$1 ;; + '') + ;; + *) + comparepkg=$1 ;; + esac + shift + fi + [[ -n $pkgurl ]] || pkgurl=$(pacman -Spdd --print-format '%l' --noconfirm "$comparepkg") || + die "Couldn't download previous package for %s." "$comparepkg" - oldpkg=${pkgurl##*://*/} + oldpkg=${pkgurl##*/} - if [[ ${oldpkg##*/} = "${pkgfile##*/}" ]]; then + if [[ ${oldpkg} = "${pkgfile##*/}" ]]; then die "The built package (%s) is the one in the repo right now!" "$_pkgname" fi - if [[ $pkgurl = file://* ]]; then + if [[ $pkgurl = file://* || ( $pkgurl = /* && -f $pkgurl ) ]]; then ln -s "${pkgurl#file://}" "$TEMPDIR/$oldpkg" elif [[ -f "$PKGDEST/$oldpkg" ]]; then ln -s "$PKGDEST/$oldpkg" "$TEMPDIR/$oldpkg" |