mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-11-04 05:15:22 +00:00 
			
		
		
		
	This accomplishes the same thing as a `find ... | sort` but with the added benefit of clarity and avoiding a call to a subshell. Additionally drop the -s option from call to patch as it is not POSIX.
		
			
				
	
	
		
			38 lines
		
	
	
		
			884 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			884 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
if [ "$1" = "-q" ] ; then
 | 
						|
	quiet=1
 | 
						|
	shift
 | 
						|
fi
 | 
						|
 | 
						|
PATCH=${PATCH:-patch}
 | 
						|
 | 
						|
patchdir=${1:?You must supply a patches directory}
 | 
						|
sourcedir=${2?:You must supply a source directory}
 | 
						|
 | 
						|
if [ ! -d "$patchdir" ] ; then
 | 
						|
	echo "$patchdir is not a directory" >&2
 | 
						|
	exit 1
 | 
						|
fi
 | 
						|
 | 
						|
if [ ! -d "$sourcedir" ] ; then
 | 
						|
	echo "$sourcedir is not a directory"  >&2
 | 
						|
	exit 1
 | 
						|
fi
 | 
						|
 | 
						|
# Patterns used in filename expansion (globs) are sorted according to the
 | 
						|
# current locale, so there is no need to do it explicitly.
 | 
						|
for patchfile in "$patchdir"/*.patch ; do
 | 
						|
	# A glob that doesn't match is not replaced, so we handle that here. We
 | 
						|
	# should only fail this test if there are no patch files.
 | 
						|
	[ -f "$patchfile" ] || {
 | 
						|
		echo "No patches in $patchdir" >&2
 | 
						|
		exit 0
 | 
						|
	}
 | 
						|
 | 
						|
	[ -z "$quiet" ] && echo "Applying patch $(basename "$patchfile")"
 | 
						|
	${PATCH} -d "$sourcedir" -p1 -i "$patchfile" >/dev/null || exit 1
 | 
						|
done
 | 
						|
 | 
						|
exit 0
 |