diff options
author | Joshua Ismael Haase Hernández <hahj87@gmail.com> | 2012-01-25 12:12:21 -0600 |
---|---|---|
committer | Joshua Ismael Haase Hernández <hahj87@gmail.com> | 2012-01-25 12:12:21 -0600 |
commit | 7887f99d234b4c88c3833c294869e307d2757787 (patch) | |
tree | 8ae7ebcf7482859b1527802dfb5557a6e11b596a | |
parent | 29b793a63d5f8e134f23cfebc9694a98acb316b8 (diff) |
is_built: faster (from fauno's branch)
updated calls to is_built
-rw-r--r-- | fullpkg-find | 2 | ||||
-rwxr-xr-x | is_built | 31 | ||||
-rwxr-xr-x | prtools/prfullpkg | 4 |
3 files changed, 25 insertions, 12 deletions
diff --git a/fullpkg-find b/fullpkg-find index d253913..8c0c063 100644 --- a/fullpkg-find +++ b/fullpkg-find @@ -47,7 +47,7 @@ find_deps() { fi fi - if is_built "${pkgbase}>=${fullver}"; then + if is_built "${pkgbase}" "${fullver}"; then exit 0 # pkg is built and updated fi @@ -2,9 +2,10 @@ usage() { echo "$0 " echo - echo "Detect is a package is installed or in a database" + echo "Detect if a given package version is already in repos" + echo "Assuming you want greater or equal" echo - echo "Example usage: is_built \"pcre>=20\"" + echo "Example usage: is_built 'pcre' '20'" } while getopts 'h' arg; do @@ -14,12 +15,24 @@ while getopts 'h' arg; do esac done -# Checks for package, if -T returns non-zero output, egrep will return 0 -# because it finds it, so we negate the value to say it's not built. -# -Sp works backwards, it will print output only when the package already -# exists +set -x -!(sudo pacman -T "$1" | egrep "*" >/dev/null) || \ -sudo pacman -Sp "$1" --print-format "%n-%v" 2>/dev/null | egrep "*" >/dev/null +ver=${2} +pkg=${1} +pver=$(LC_ALL=C pacman -Sdp --print-format "%v" "${pkg}" 2>/dev/null) -exit $? +# if pacman fails or returns nothing +r=$? +[ "${pver}" = " there is nothing to do" ] && r=1 + +result=$(vercmp "${pver}" "${ver}") + +# if vercmp > 1 means our version is bigger +if [ ${result} -ge 0 -a ${r} -eq 0 ]; then + exit 0 +else + exit 1 +fi + +# just in case +exit 1 diff --git a/prtools/prfullpkg b/prtools/prfullpkg index dd2ba3a..bbb8d73 100755 --- a/prtools/prfullpkg +++ b/prtools/prfullpkg @@ -85,7 +85,7 @@ function find_deps { # Checks ABSROOT and look for target pkg deps. Adds them i local epoch=${epoch:-0} local fullver=$(get_fullver ${epoch} ${pkgver} ${pkgrel}) - if is_built "${pkgbase}>=${fullver}"; then + if is_built "${pkgbase}" "${fullver}"; then exit 0 # pkg is built and updated fi @@ -316,7 +316,7 @@ fi if [ $level -eq 0 ]; then if [ ! -d ${build_dir} ]; then # in case of custom -d option - mkdir -p ${build_dir} + mkdir -p ${build_dir} else cleanup # files already there can screw find_deps fi |