go.uber.org/yarpc@v1.72.1/etc/bin/helpers.sh (about) 1 IGNORE_DIRS="\ 2 internal/examples \ 3 internal/cover \ 4 internal/prototest \ 5 internal/service-test \ 6 internal/testutils" 7 8 WHITELIST="\ 9 api/peer \ 10 api/peer/peertest \ 11 api/middleware/middlewaretest \ 12 api/transport \ 13 api/transport/transporttest \ 14 encoding/thrift \ 15 encoding/thrift/thriftrw-plugin-yarpc \ 16 internal/interpolate \ 17 pkg/lifecycle" 18 19 is_ignore_dir() { 20 for i in ${IGNORE_DIRS}; do 21 if echo "${1}" | grep "^${i}" >/dev/null; then 22 return 0 23 fi 24 done 25 return 1 26 } 27 28 is_whitelisted() { 29 for w in ${WHITELIST}; do 30 if [ "${1}" == "${w}" ]; then 31 return 0 32 fi 33 done 34 return 1 35 } 36 37 get_ignore_dirs() { 38 while read d; do 39 if is_ignore_dir "${d}"; then 40 echo "${d}" 41 fi 42 done 43 } 44 45 remove_whitelisted() { 46 while read d; do 47 if ! is_whitelisted "${d}"; then 48 echo "${d}" 49 fi 50 done 51 } 52 53 dirnames() { 54 local list="" 55 for filename in $@; do 56 local d="$(dirname "${filename}")" 57 if [ -z "${list}" ]; then 58 local list="${d}" 59 else 60 local list="${list} ${d}" 61 fi 62 done 63 echo "${list}" | tr ' ' '\n' | sort | uniq 64 } 65 66 go_files() { 67 find . -name '*.go' | sed 's/^\.\///' | grep -v -e '^vendor/' 68 } 69 70 generated_go_files() { 71 find $(go_files) -exec sh -c 'head -n30 {} | grep "Code generated by\|Autogenerated by\|Automatically generated by\|@generated" >/dev/null' \; -print 72 } 73 74 dirnames_with_go_files() { 75 dirnames $(go_files) 76 } 77 78 dirnames_with_generated_go_files() { 79 dirnames $(generated_go_files) 80 } 81 82 cover_ignore_dirs_not_uniq() { 83 dirnames_with_generated_go_files | remove_whitelisted 84 dirnames_with_go_files | get_ignore_dirs | remove_whitelisted 85 } 86 87 cover_ignore_dirs() { 88 cover_ignore_dirs_not_uniq | sort | uniq 89 } 90 91 not_cover_ignore_dirs() { 92 local cover_dirs="$(cover_ignore_dirs)" 93 for dir in $(dirnames_with_go_files); do 94 local is_cover_dir= 95 for cover_dir in ${cover_dirs}; do 96 if [ "${cover_dir}" == "${dir}" ]; then 97 local is_cover_dir="1" 98 fi 99 done 100 if [ -z "${is_cover_dir}" ]; then 101 echo "${dir}" 102 fi 103 done 104 }