From 9d3e59e311a863e140699dd2eaec7c0b0bf632f4 Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Sat, 12 May 2012 22:13:11 -0400 Subject: makepkg: use mapfile where plausible With bash4 as a requirement, we can use mapfile when reading command output into an array. mapfile has the advantage of using block buffered I/O rather than line buffered I/O, making it slightly faster for most jobs. Signed-off-by: Dave Reisner --- scripts/makepkg.sh.in | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index d36dbd63..44b1c2cb 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -1075,9 +1075,8 @@ tidy_install() { # find hard links and remove them # the '|| true' part keeps the script from bailing on the EOF returned # by read at the end of the find output - IFS=$'\n' read -rd '' -a hardlinks < \ - <(find ${MAN_DIRS[@]} \! -name "$file" -samefile "$manpage" \ - 2>/dev/null || true) || true + mapfile -t hardlinks < \ + <(find ${MAN_DIRS[@]} ! -name "$file" -samefile "$manpage" 2>/dev/null) rm -f "${hardlinks[@]}" # compress the original gzip -9 "$manpage" @@ -1162,7 +1161,7 @@ find_libprovides() { missing=0 case "$p" in *.so) - IFS=$'\n' read -rd '' -a filename < <(find "$pkgdir" -type f -name $p\*) + mapfile -t filename < <(find "$pkgdir" -type f -name $p\*) if [[ $filename ]]; then # packages may provide multiple versions of the same library for fn in "${filename[@]}"; do @@ -1253,14 +1252,14 @@ write_pkginfo() { [[ $optdepends ]] && printf "optdepend = %s\n" "${optdepends[@]//+([[:space:]])/ }" [[ $conflicts ]] && printf "conflict = %s\n" "${conflicts[@]}" - IFS=$'\n' read -rd '' -a provides < <(find_libprovides) + mapfile -t provides < <(find_libprovides) [[ $provides ]] && printf "provides = %s\n" "${provides[@]}" [[ $backup ]] && printf "backup = %s\n" "${backup[@]}" local it - IFS=$'\n' read -rd '' -a libdepends < <(find_libdepends) + mapfile -t libdepends < <(find_libdepends) depends+=("${libdepends[@]}") for it in "${depends[@]}"; do -- cgit v1.2.3-70-g09d2