github.com/sttk/sabi@v0.5.0/build.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  errcheck() {
     4    exitcd=$1
     5    if [[ "$exitcd" != "0" ]]; then
     6      exit $exitcd
     7    fi
     8  }
     9  
    10  clean() {
    11    go clean --cache
    12    errcheck $?
    13  }
    14  
    15  format() {
    16    go fmt ./...
    17    errcheck $?
    18  }
    19  
    20  compile() {
    21    go vet ./...
    22    errcheck $?
    23    go build ./...
    24    errcheck $?
    25  }
    26  
    27  test() {
    28    go test -v $(go list ./... | grep -v /benchmark)
    29    errcheck $?
    30  }
    31  
    32  unit() {
    33    go test -v -run $1 $(go list ./... | grep -v /benchmark)
    34    errcheck $?
    35  }
    36  
    37  cover() {
    38    mkdir -p coverage
    39    errcheck $?
    40    go test -coverprofile=coverage/cover.out $(go list ./... | grep -v /benchmark)
    41    errcheck $?
    42    go tool cover -html=coverage/cover.out -o coverage/cover.html
    43    errcheck $?
    44  }
    45  
    46  bench() {
    47    local dir=$1
    48    if [[ "$dir" == "" ]]; then
    49      dir="."
    50    fi
    51    pushd $dir
    52    go test -bench . --benchmem
    53    errcheck $?
    54    popd
    55  }
    56  
    57  if [[ "$#" == "0" ]]; then
    58    clean
    59    format
    60    compile
    61    test
    62    cover
    63  
    64  elif [[ "$1" == "unit" ]]; then
    65    unit $2
    66  
    67  elif [[ "$1" == "bench" ]]; then
    68    bench $2
    69  
    70  else
    71    for a in "$@"; do
    72      case "$a" in
    73      clean)
    74        clean
    75        ;;
    76      format)
    77        format
    78        ;;
    79      compile)
    80        compile
    81        ;;
    82      test)
    83        test
    84        ;;
    85      cover)
    86        cover
    87        ;;
    88      '')
    89        compile
    90        ;;
    91      *)
    92        echo "Bad task: $a"
    93        exit 1
    94        ;;
    95      esac
    96    done
    97  fi