 c447e5cf15
			
		
	
	c447e5cf15
	
	
	
		
			
			See script directory for method. The script to run in the top level MaxScale directory is called maxscale-uncrustify.sh, which uses another script, list-src, from the same directory (so you need to set your PATH). The uncrustify version was 0.66.
		
			
				
	
	
		
			125 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| default_header_ext="h hh hpp"
 | |
| default_source_ext="c cc cpp"
 | |
| path=$PWD
 | |
| 
 | |
| usage() {
 | |
|     echo "Usage:" $(basename $0) "[-fhsHS --help] [path...]"
 | |
|     echo "  Produce a list of 'source' files from current dir, or path if given."
 | |
|     echo "  By default lists both headers and sources and these extentions are used:"
 | |
|     echo "  headers: '$default_header_ext'"
 | |
|     echo "  sources:  '$default_source_ext'"
 | |
|     echo "  -h list header files."
 | |
|     echo "  -s list source files."
 | |
|     echo "  -f Use the 'file' command to classify as a source, then if there is an"
 | |
|     echo "     h in the extension it is a header else source. This will match a lot"
 | |
|     echo "     of potential files, e.g. html with C source code in it."
 | |
|     echo " -H quoted list of header extensions."
 | |
|     echo "    (adds -h, unless -s given.)"
 | |
|     echo " -S quotedlist of source extensions"
 | |
|     echo "    (adds -s, unless -h given.)"
 | |
|     echo " -x quoted list of directories to exclude"
 | |
| }
 | |
| 
 | |
| opts=$(getopt -o "fhsH:S:x:" --long "help" -n $(basename $0) -- "$@")
 | |
| if [ $? -ne 0 ]; then
 | |
| 	usage
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| eval set -- "$opts"
 | |
| 
 | |
| while true; do
 | |
|     case "$1" in
 | |
| 	-f) use_file_cmd=true ;;
 | |
| 	-h) list_headers=true ;;
 | |
| 	-s) list_sources=true ;;
 | |
| 	-H) header_ext="$2"
 | |
| 	    shift
 | |
| 	    ;;
 | |
| 	-S) source_ext="$2"
 | |
| 	    shift
 | |
| 	    ;;
 | |
|     -x) exclusion_list="$2"
 | |
|         shift
 | |
|         ;;
 | |
| 	--help)
 | |
| 	    usage
 | |
| 	    exit 1
 | |
| 	    ;;
 | |
| 	'--')
 | |
| 	    shift
 | |
| 	    break
 | |
|     esac
 | |
|     shift
 | |
| done
 | |
| shift $((OPTIND-1))
 | |
| 
 | |
| if [[ -n $1 ]]; then
 | |
|     path=$1
 | |
| fi
 | |
| 
 | |
| if ! [[ $list_headers || $list_sources ]]; then
 | |
|     list_headers=true
 | |
|     list_sources=true
 | |
| fi
 | |
| 
 | |
| if [[ -z $header_ext ]]; then
 | |
|     header_ext=$default_header_ext
 | |
| fi
 | |
| 
 | |
| if [[ -z $source_ext ]]; then
 | |
|     source_ext=$default_source_ext
 | |
| fi
 | |
| 
 | |
| # regex when using file cmd
 | |
| if [[ $list_headers && $list_sources ]]; then
 | |
|     regex='.*'
 | |
| elif [[ $list_headers ]]; then
 | |
|     regex='h[^.]*$'  # h in extension
 | |
| else
 | |
|     regex='[.][^h]*$'  # no h in extension
 | |
| fi
 | |
| 
 | |
| #find /home/nantti/tmp/list-src-test -type d \( -name 'exclude' -o -name 'include' \) -prune -o -type f -print
 | |
| 
 | |
| # build find command
 | |
| if ! [[ -z $exclusion_list ]]; then
 | |
|     for exclude in $exclusion_list
 | |
|     do
 | |
|         if [[ -z $exclusion_cmd ]]; then
 | |
|             exclusion_cmd="-type d \("
 | |
|         else
 | |
|             exclusion_cmd="$exclusion_cmd -o"
 | |
|         fi
 | |
| 
 | |
|         exclusion_cmd="$exclusion_cmd -name '$exclude'"
 | |
|     done
 | |
|     exclusion_cmd="$exclusion_cmd \) -prune -o "
 | |
| fi
 | |
| 
 | |
| FIND="find $path $exclusion_cmd -type f -print"
 | |
| 
 | |
| for file in $(eval $FIND)
 | |
| do
 | |
|     if [[ $use_file_cmd ]]; then
 | |
| 	if [[ `file -b $file` =~ "source" ]]; then
 | |
|             if [[ $file =~ $regex ]]; then
 | |
| 		echo $file
 | |
|             fi
 | |
| 	fi
 | |
|     else
 | |
| 	regex="\b${file##*.}\b"
 | |
| 	if [[ $list_headers && $header_ext =~ $regex ]]; then
 | |
| 	    echo $file
 | |
| 	fi
 | |
| 
 | |
| 	if [[ $list_sources && $source_ext =~ $regex ]]; then
 | |
|        	    echo $file
 | |
| 	fi
 | |
| 
 | |
|     fi
 | |
| 
 | |
| done
 |