index : devtools32 | |
Archlinux32 fork of devtools | gitolite user |
summaryrefslogtreecommitdiff |
-rw-r--r-- | find-libdeps.in | 34 |
diff --git a/find-libdeps.in b/find-libdeps.in index 8fff939..3f44903 100644 --- a/find-libdeps.in +++ b/find-libdeps.in @@ -1,5 +1,7 @@ #!/bin/bash +m4_include(lib/common.sh) + set -e IGNORE_INTERNAL=0 @@ -13,7 +15,7 @@ script_mode=${0##*/find-lib} case $script_mode in deps|provides) true;; - *) echo "error: unknown mode $script_mode"; exit 1;; + *) die "unknown mode $script_mode" ;; esac if [[ -z $1 ]]; then @@ -23,36 +25,19 @@ if [[ -z $1 ]]; then exit 1 fi -cleanup() { - if [[ $tmpdir ]]; then - rm -rf $tmpdir; - fi -} - if [[ -d $1 ]]; then - cd $1 + pushd $1 >/dev/null else - tmpdir=$(mktemp -d /tmp/find-sodeps.XXXXXXX) - trap "cleanup" EXIT INT TERM + setup_workdir case ${script_mode} in - deps) bsdtar -C $tmpdir -xf "$1";; - provides)bsdtar -C $tmpdir -xf "$1" --include="*.so*";; + deps) bsdtar -C $WORKDIR -xf "$1";; + provides) bsdtar -C $WORKDIR -xf "$1" --include="*.so*";; esac - cd $tmpdir + pushd $WORKDIR >/dev/null fi -in_array() { - local needle=$1; shift - [[ -z $1 ]] && return 1 # Not Found - local item - for item in "$@"; do - [[ $item = $needle ]] && return 0 # Found - done - return 1 # Not Found -} - process_sofile() { # extract the library name: libfoo.so soname="${sofile%%\.so\.*}.so" @@ -68,7 +53,7 @@ process_sofile() { fi } -case $script_mode in +case $script_mode in deps) find_args="-perm -u+x";; provides) find_args="-name *.so*";; esac @@ -98,3 +83,4 @@ find . -type f $find_args | while read filename; do fi done +popd >/dev/null |