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  }