# HG changeset patch # User Christophe Lincoln # Date 1337242060 -7200 # Node ID 145ee647429cb57a589e29b117daaae9f90119f1 # Parent 1d9559a4f75bf060023fc2fba8bc09673d58744a libspk.sh: full_package can be more efficient diff -r 1d9559a4f75b -r 145ee647429c lib/libspk.sh --- a/lib/libspk.sh Thu May 17 09:32:47 2012 +0200 +++ b/lib/libspk.sh Thu May 17 10:07:40 2012 +0200 @@ -65,7 +65,7 @@ is_package_mirrored() { local name=$1 - local occurance=$(cat $pkgsdesc | grep "$name ") + local occurance=$(fgrep "$name |" $pkgsdesc) [ -n "$occurance" ] } @@ -80,23 +80,17 @@ wget -c ${mirror%/}/$package ;; esac if [ ! -f "$package" ]; then - echo "ERROR: Missing package $package" - exit 1 + gettext "ERROR: Missing package $package"; newline + newline && exit 1 fi } # Assume package name is valid -# There may be a more efficient way to do this... full_package() { - local name=$1 - local occurance=$(cat $pkgsdesc | grep "$name ") - local count=0 - for i in $(echo $occurance | tr "|" "\n"); do - if [ $count -eq 1 ]; then - echo $name-$i && return - fi - count=$(($count+1)) - done + IFS="|" + local line="$(grep "^$1 |" $pkgsdesc)" + echo $line | busybox awk '{print $1 "-" $2}' + unset IFS } # Check if a package is already installed.