From 1b3808e2b940985173675502bba0044c624945ce Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Sat, 5 May 2012 18:18:38 -0400 Subject: createlinks: move links file creation to separate function --- createlinks | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/createlinks b/createlinks index 4bf7b7f..1295093 100755 --- a/createlinks +++ b/createlinks @@ -16,6 +16,26 @@ getpkgname() { echo ${tmp%-*.pkg.tar.*} } +create_file_list() { + local pkgname=$(getpkgname "$1") + + tmppkgdir=$tmp/tmp/$repodir/$pkgname + mkdir -p "$tmppkgdir" + if [[ -f $tmp/cache/$repodir/$pkgname/links ]]; then + # reuse the cached file + mv "$tmp/cache/$repodir/$pkgname/links" "$tmppkgdir/links" + return 0 + else + echo "$repo/$arch: $pkgname" + mkdir -p "$tmppkgdir/pkg" + bsdtar -xof "$pkg" -C "$tmppkgdir/pkg" "${extractinc[@]}" 2>/dev/null + find "$tmppkgdir/pkg" -type f -exec readelf -d {} + 2>/dev/null | + sed -nr 's/.*Shared library: \[(.*)\]$/\1/p' | sort -u >"$tmppkgdir/links" + rm -rf "$tmppkgdir/pkg" + return 1 + fi +} + generate_links() { for repo in ${repos[@]}; do for arch in ${arches[@]}; do @@ -35,19 +55,8 @@ generate_links() { for pkg in "$target/$repodir"/*.pkg.tar.?z; do [[ -f $pkg ]] || continue - pkgname=$(getpkgname $pkg) - tmppkgdir=${tmp}/tmp/${repodir}/${pkgname} - mkdir -p $tmppkgdir - if [ -f "${tmp}/cache/${repodir}/${pkgname}/links" ]; then - # reuse the cached file - mv ${tmp}/cache/${repodir}/${pkgname}/links ${tmppkgdir}/links - else - echo "$repo/$arch: $pkgname" - mkdir -p ${tmppkgdir}/pkg - bsdtar -xvof "$pkg" -C "$tmppkgdir/pkg" "${extractinc[@]}" 2>/dev/null - find "$tmppkgdir/pkg" -type f -exec readelf -d {} + 2>/dev/null | - sed -nr 's/.*Shared library: \[(.*)\]$/\1/p' | sort -u >"$tmppkgdir/links" - rm -rf ${tmppkgdir}/pkg + create_file_list "$pkg" + if (( $? != 0 )); then cached=false fi done -- cgit v1.2.3-24-g4f1b