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 <dreisner@archlinux.org>
This commit is contained in:
Dave Reisner 2012-08-10 20:20:48 -04:00 committed by Dan McGee
parent 369c5aa7dd
commit aa50df630c

View file

@ -2212,6 +2212,14 @@ canonicalize_path() {
fi fi
} }
dir_is_empty() {
(
shopt -s dotglob nullglob
files=("$1"/*)
(( ${#files} == 0 ))
)
}
m4_include(library/parseopts.sh) m4_include(library/parseopts.sh)
usage() { usage() {
@ -2695,14 +2703,14 @@ if (( NOEXTRACT )); then
warning "$(gettext "Skipping source integrity checks -- using existing %s tree")" "src/" warning "$(gettext "Skipping source integrity checks -- using existing %s tree")" "src/"
warning "$(gettext "Skipping source extraction -- 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!")" error "$(gettext "The source directory is empty, there is nothing to build!")"
plain "$(gettext "Aborting...")" plain "$(gettext "Aborting...")"
exit 1 exit 1
fi fi
elif (( REPKG )); then elif (( REPKG )); then
if (( ! PKGFUNC && ! SPLITPKG )) \ 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!")" error "$(gettext "The package directory is empty, there is nothing to repackage!")"
plain "$(gettext "Aborting...")" plain "$(gettext "Aborting...")"
exit 1 exit 1