Home | History | Annotate | Download | only in distrib
      1 #!/bin/bash
      2 # Copyright 2015 gRPC authors.
      3 #
      4 # Licensed under the Apache License, Version 2.0 (the "License");
      5 # you may not use this file except in compliance with the License.
      6 # You may obtain a copy of the License at
      7 #
      8 #     http://www.apache.org/licenses/LICENSE-2.0
      9 #
     10 # Unless required by applicable law or agreed to in writing, software
     11 # distributed under the License is distributed on an "AS IS" BASIS,
     12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 # See the License for the specific language governing permissions and
     14 # limitations under the License.
     15 
     16 set -ex
     17 
     18 # change to root directory
     19 cd "$(dirname "${0}")/../.."
     20 
     21 DIRS=(
     22     'examples/python'
     23     'src/python'
     24     'tools'
     25 )
     26 EXCLUSIONS=(
     27     '*protoc_lib_deps.py'  # this file is auto-generated
     28     '*_pb2*.py'  # no need to format protoc generated files
     29 )
     30 
     31 VIRTUALENV=yapf_virtual_environment
     32 
     33 python -m virtualenv $VIRTUALENV
     34 PYTHON=${VIRTUALENV}/bin/python
     35 "$PYTHON" -m pip install --upgrade pip==10.0.1
     36 "$PYTHON" -m pip install --upgrade futures
     37 "$PYTHON" -m pip install yapf==0.20.0
     38 
     39 yapf() {
     40     local exclusion exclusion_args=()
     41     for exclusion in "${EXCLUSIONS[@]}"; do
     42         exclusion_args+=( "--exclude" "$1/${exclusion}" )
     43     done
     44     $PYTHON -m yapf -i -r --style=setup.cfg -p "${exclusion_args[@]}" "${1}"
     45 }
     46 
     47 if [[ -z "${TEST}" ]]; then
     48     for dir in "${DIRS[@]}"; do
     49 	yapf "${dir}"
     50     done
     51 else
     52     ok=yes
     53     for dir in "${DIRS[@]}"; do
     54 	tempdir=$(mktemp -d)
     55 	cp -RT "${dir}" "${tempdir}"
     56 	yapf "${tempdir}"
     57 	diff -x '*.pyc' -ru "${dir}" "${tempdir}" || ok=no
     58 	rm -rf "${tempdir}"
     59     done
     60     if [[ ${ok} == no ]]; then
     61 	false
     62     fi
     63 fi
     64