kopia lustrzana https://gitlab.com/sane-project/backends
				
				
				
			
		
			
				
	
	
		
			100 wiersze
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			100 wiersze
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/bin/sh -u
 | |
| # tools/style-check.sh -- for conformance or --fix to conform
 | |
| # Copyright (C) 2017  Olaf Meeuwissen
 | |
| #
 | |
| # License: GPL-3.0+
 | |
| 
 | |
| check_final_newline() {
 | |
|     test x = "x$(tail -c 1 $1)"
 | |
| }
 | |
| 
 | |
| insert_final_newline() {
 | |
|     check_final_newline $1 || echo >> $1
 | |
| }
 | |
| 
 | |
| check_trailing_whitespace() {
 | |
|     test -z "$(sed -n '/[ \t]$/{p;q}' $1)"
 | |
| }
 | |
| 
 | |
| trim_trailing_whitespace() {
 | |
|     sed -i 's/[ \t]*$//' $1
 | |
| }
 | |
| 
 | |
| check_trailing_blank_lines() {
 | |
|     test -z "$(sed -n '${/^$/s/^/blank/p}' $1)"
 | |
| }
 | |
| 
 | |
| trim_trailing_blank_lines() {
 | |
|     sed -i -e :a -e '/^\n*$/{$d;N;};/\n$/ba' $1
 | |
| }
 | |
| 
 | |
| check_leading_blank_lines() {
 | |
|     test -z "$(sed -n '1{/^$/s/^/blank/p;q}' $1)"
 | |
| }
 | |
| 
 | |
| trim_leading_blank_lines() {
 | |
|     sed -i '/./,$!d' $1
 | |
| }
 | |
| 
 | |
| check_utf_8_charset() {
 | |
|     err=$(iconv -f utf-8 -t utf-8 < $1 2>&1 > /dev/null)
 | |
|     if test x != "x$err"; then
 | |
|         echo "charset not UTF-8: $1" >&2
 | |
|         echo "$err" >&2
 | |
|         return 1
 | |
|     fi
 | |
| }
 | |
| 
 | |
| fix=false
 | |
| case $1 in
 | |
|     --fix) fix=true; shift;;
 | |
| esac
 | |
| 
 | |
| status=0
 | |
| for file in "$@"; do
 | |
|     test -d $file && continue       # skip directories, just in case
 | |
|     file=$(echo $file | sed 's,^\.\/,,')
 | |
|     case $file in
 | |
|         COPYING) ;;                 # hands off of the GPL
 | |
|         *.gif) ;;                   # don't touch image files
 | |
|         *.jpg) ;;
 | |
|         *.png) ;;
 | |
|         *.pnm) ;;
 | |
|         *.patch) ;;                 # patch output may have trailing lines or whitespace
 | |
|         Makefile.in) ;;             # skip automake outputs
 | |
|         */Makefile.in) ;;
 | |
|         aclocal.m4) ;;              # skip autoconf outputs
 | |
|         include/sane/config.h.in) ;;
 | |
|         m4/libtool.m4) ;;           # courtesy of libtool
 | |
|         m4/lt~obsolete.m4) ;;
 | |
|         ABOUT-NLS) ;;               # courtesy of gettext
 | |
|         doc/doxygen-*.conf.in) ;;   # don't fix doxygen -g comments
 | |
| 
 | |
|         *)
 | |
|             if `$fix`; then
 | |
|                 trim_trailing_whitespace $file
 | |
|                 insert_final_newline $file
 | |
|                 trim_trailing_blank_lines $file
 | |
|             else
 | |
|                 if ! check_trailing_whitespace $file; then
 | |
|                     status=1
 | |
|                     echo "trailing whitespace: $file" >&2
 | |
|                 fi
 | |
|                 if ! check_final_newline $file; then
 | |
|                     status=1
 | |
|                     echo "final newline missing: $file" >&2
 | |
|                 fi
 | |
|                 if ! check_trailing_blank_lines $file; then
 | |
|                     status=1
 | |
|                     echo "trailing blank lines: $file" >&2
 | |
|                 fi
 | |
|                 if ! check_utf_8_charset $file; then
 | |
|                     status=1
 | |
|                 fi
 | |
|             fi
 | |
|             ;;
 | |
|     esac
 | |
| done
 | |
| 
 | |
| exit $status
 |