mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-06 00:06:42 +08:00
f96cfe019a
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>
26 lines
453 B
Bash
Executable File
26 lines
453 B
Bash
Executable File
#!/usr/bin/env bash
|
|
IFS=$'\n'
|
|
[ -n "$1" -a -n "$2" ] || {
|
|
echo "Usage: $0 <file> <directory>"
|
|
exit 1
|
|
}
|
|
[ -f "$1" -a -d "$2" ] || {
|
|
echo "File/directory not found"
|
|
exit 1
|
|
}
|
|
cat "$1" | (
|
|
cd "$2"
|
|
while read entry; do
|
|
[ -n "$entry" ] || break
|
|
[ ! -d "$entry" ] || [ -L "$entry" ] && rm -f "$entry"
|
|
done
|
|
)
|
|
sort -r "$1" | (
|
|
cd "$2"
|
|
while read entry; do
|
|
[ -n "$entry" ] || break
|
|
[ -d "$entry" ] && rmdir "$entry" > /dev/null 2>&1
|
|
done
|
|
)
|
|
true
|