github.com/micro/go-micro/v2@v2.9.1/.github/workflows/scripts/build-all-examples.sh (about)

     1  #!/bin/bash
     2  # set -x
     3  
     4  function build_binary {
     5      echo building $1
     6      pushd $1
     7      go build -o _main
     8      local ret=$?
     9      if [ $ret -gt 0 ]; then 
    10          failed=1
    11          failed_arr+=($1)
    12      fi
    13      popd
    14  }
    15  
    16  function is_main {
    17      grep "package main" -l -dskip $1/*.go > /dev/null 2>&1
    18  }
    19  
    20  
    21  function check_dir {
    22      is_main $1
    23      local ret=$?
    24      if [ $ret == 0 ]; then
    25          build_binary $1 $2
    26      fi
    27      for filename in $1/*; do
    28          if [ -d $filename ]; then
    29              check_dir $filename $2
    30          fi
    31      done
    32  }
    33  failed_arr=()
    34  failed=0
    35  go mod edit -replace github.com/micro/go-micro/v2=github.com/micro/go-micro/v2@$1 
    36  check_dir . $1
    37  if [ $failed -gt 0 ]; then
    38      echo Some builds failed
    39      printf '%s\n' "${failed_arr[@]}"
    40  fi
    41  exit $failed