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 <[email protected]>
---
 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 dd4066b..262bcf8 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
-- 
1.7.11.4


Reply via email to