mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-27 12:04:28 -04:00 
			
		
		
		
	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
 |