From aa50df630c0ca572ff14e938b180ae46040f14a3 Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Fri, 10 Aug 2012 20:20:48 -0400 Subject: makepkg: implement dir_is_empty for dir content checks Rather than calling upon ls for this, use a proper shell function which uses globbing to determine the existance of files in a directory. Signed-off-by: Dave Reisner --- scripts/makepkg.sh.in | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index dd4066bf..262bcf89 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -2212,6 +2212,14 @@ canonicalize_path() { fi } +dir_is_empty() { + ( + shopt -s dotglob nullglob + files=("$1"/*) + (( ${#files} == 0 )) + ) +} + m4_include(library/parseopts.sh) usage() { @@ -2695,14 +2703,14 @@ if (( NOEXTRACT )); then warning "$(gettext "Skipping source integrity checks -- using existing %s tree")" "src/" warning "$(gettext "Skipping source extraction -- using existing %s tree")" "src/" - if (( NOEXTRACT )) && [[ -z $(ls "$srcdir" 2>/dev/null) ]]; then + if (( NOEXTRACT )) && dir_is_empty "$srcdir"; then error "$(gettext "The source directory is empty, there is nothing to build!")" plain "$(gettext "Aborting...")" exit 1 fi elif (( REPKG )); then if (( ! PKGFUNC && ! SPLITPKG )) \ - && [[ ! -d $pkgdir || -z $(ls "$pkgdir" 2>/dev/null) ]]; then + && { [[ ! -d $pkgdir ]] || dir_is_empty "$pkgdir"; }; then error "$(gettext "The package directory is empty, there is nothing to repackage!")" plain "$(gettext "Aborting...")" exit 1 -- cgit v1.2.3-24-g4f1b