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
 |