[arch-projects] [devtools] [PATCH 2/5] checkpkg: Avoid unnecessary use of sed(1) and cut(1)

Lukas Fleischer archlinux at cryptocrack.de
Wed Aug 24 04:18:25 EDT 2011


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 <archlinux at cryptocrack.de>
---
 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



More information about the arch-projects mailing list