build: Fix directory symlinks not removed when cleaning STAGING_DIR
authorJeffery To <jeffery.to@gmail.com>
Tue, 18 Feb 2020 21:15:04 +0000 (05:15 +0800)
committerPetr Štetiar <ynezz@true.cz>
Sun, 1 Mar 2020 20:35:59 +0000 (21:35 +0100)
Currently, a symbolic link whose target is a directory will not be
removed when cleaning packages from STAGING_DIR.

In the first cleaning pass in scripts/clean-package.sh, the -f test for
a directory symlink returns false (because the link target is a
directory) and so the symlink is not removed.

In the second pass, the -d test returns true for a directory symlink,
but the symlink is not removed by rmdir because rmdir only removes
(real) directories.

This updates clean-package.sh to remove all non-directories (including
symbolic links) in the first pass.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
scripts/clean-package.sh

index 6dd9bf730686f4889f319834d19fe2bf7bd3b9b1..035725625d1791d1b70946fcfa62823db45728fc 100755 (executable)
@@ -12,7 +12,7 @@ cat "$1" | (
        cd "$2"
        while read entry; do
                [ -n "$entry" ] || break
-               [ -f "$entry" ] && rm -f $entry
+               [ ! -d "$entry" ] || [ -L "$entry" ] && rm -f "$entry"
        done
 )
 sort -r "$1" | (