Many existing message catalogs don't use UTF-8 so don't check them in svn pre-commit hook. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62380 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| REPOS="$1"
 | |
| TXN="$2"
 | |
| 
 | |
| SVNLOOK=/usr/bin/svnlook
 | |
| 
 | |
| svnl() {
 | |
|     cmd=$1
 | |
|     shift
 | |
|     $SVNLOOK $cmd "$REPOS" -t "$TXN" $*
 | |
| }
 | |
| 
 | |
| rc=0
 | |
| 
 | |
| # exclude all third-party files from consideration, we don't want to do any
 | |
| # checks for them
 | |
| #
 | |
| # also exclude message catalog files as they may be not in UTF-8
 | |
| all_changed_files=`svnl changed | \
 | |
|                     grep "^[AU]" | \
 | |
|                     sed 's/^....//' | \
 | |
|                     egrep -v "locale/.*\.po$" | \
 | |
|                     egrep -v "src/(tiff|regex|jpeg|stc/scintilla)" | \
 | |
|                     egrep -v "_wrap.cpp"`
 | |
| 
 | |
| # analyze the changed files to find all non-binary and all source files
 | |
| for f in $all_changed_files; do
 | |
|     mimetype=`svnl proplist -v $f |
 | |
|                 fgrep "svn:mime-type" |
 | |
|                 sed 's/^ svn:mime-type : //'`
 | |
|     case $mimetype in
 | |
|         ''|text/*)
 | |
|             ;;
 | |
| 
 | |
|         *)
 | |
|             continue
 | |
|             ;;
 | |
|     esac
 | |
| 
 | |
|     changed_text_files="$changed_text_files $f"
 | |
| 
 | |
|     case $f in
 | |
|         *.cpp|*.h|*.py)
 | |
|             changed_sources="$changed_sources $f"
 | |
|             ;;
 | |
|     esac
 | |
| done
 | |
| 
 | |
| for f in $changed_sources; do
 | |
|      if  svnl cat $f | fgrep -q '	'; then
 | |
|          echo "Please remove TABs from $f before committing." >&2
 | |
|          rc=1
 | |
|      fi
 | |
| done
 | |
| 
 | |
| for f in $changed_text_files; do
 | |
|     if ! svnl cat $f | iconv -f utf8 -t WCHAR_T > /dev/null; then
 | |
|         echo "File $f doesn't use UTF-8, please convert it before committing." >&2
 | |
|         echo "(or set svn:mime-type property correctly if the file is binary)." >&2
 | |
|         rc=1
 | |
|     fi
 | |
| done
 | |
| 
 | |
| exit $rc
 | |
| 
 |