 f4ece40463
			
		
	
	
		f4ece40463
		
	
	
	
	
		
			
			Make it handle multiple include statements in a file:
 (1) The printf needs a space so the include files will be separated.
 (2) Also $f can contain multiple failes, so redirection will not work
     and we have to use cat to process all files.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
		
	
			
		
			
				
	
	
		
			29 lines
		
	
	
		
			654 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			654 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #! /bin/sh
 | |
| # Construct a target device config file from a default, pulling in any
 | |
| # files from include directives.
 | |
| 
 | |
| dest=$1.tmp
 | |
| dep=$1.d
 | |
| src=$2
 | |
| src_dir=`dirname $src`
 | |
| all_includes=
 | |
| 
 | |
| process_includes () {
 | |
|   cat $1 | grep '^include' | \
 | |
|   while read include file ; do
 | |
|     all_includes="$all_includes $src_dir/$file"
 | |
|     process_includes $src_dir/$file
 | |
|   done
 | |
| }
 | |
| 
 | |
| f=$src
 | |
| while [ -n "$f" ] ; do
 | |
|   f=`cat $f | tr -d '\r' | awk '/^include / {printf "'$src_dir'/%s ", $2}'`
 | |
|   [ $? = 0 ] || exit 1
 | |
|   all_includes="$all_includes $f"
 | |
| done
 | |
| process_includes $src > $dest
 | |
| 
 | |
| cat $src $all_includes | grep -v '^include' > $dest
 | |
| echo "`basename $1`: $all_includes" > $dep
 |