We already use `pacman -Sddp` here which should always only return a
single package URL for regular packages. No need to extract the first
field of the last line. Also, specify "--print-format '%l'" explicitly
to make this consistent even if pacman(8)'s default value changes some
day.

Use bash parameter expansion instead of sed(1) to extract the file name
from the URL.

Signed-off-by: Lukas Fleischer <[email protected]>
---
 checkpkg |   10 ++--------
 1 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/checkpkg b/checkpkg
index ddc14dd..9d379b7 100755
--- a/checkpkg
+++ b/checkpkg
@@ -13,10 +13,6 @@ if [[ -r ~/.makepkg.conf ]]; then
        source ~/.makepkg.conf
 fi
 
-strip_url() {
-       echo "$1" | sed 's|^.*://.*/||g'
-}
-
 if [[ ! -f PKGBUILD ]]; then
        echo 'This must be run in the directory of a built package.'
        exit 1
@@ -47,16 +43,14 @@ for _pkgname in "${pkgname[@]}"; do
                exit 1
        fi
 
-       tmp=$(pacman -Spdd --noconfirm "$_pkgname")
+       pkgurl=$(pacman -Spdd --print-format '%l' --noconfirm "$_pkgname")
 
        if [[ $? -ne 0 ]]; then
                echo "Couldn't download previous package for $_pkgname."
                exit 1
        fi
 
-       pkgurl=$(echo $tmp | rev | cut -d ' ' -f 1 | rev)
-
-       oldpkg=$(strip_url "$pkgurl")
+       oldpkg=${pkgurl##*://*/}
 
        if [[ "$(basename $oldpkg)" = "$(basename $pkgfile)" ]]; then
                echo "The built package ($_pkgname) is the one in the repo 
right now!"
-- 
1.7.6

Reply via email to