1#!/bin/bash 2# 3# Copyright 2017, Joe Tsai. All rights reserved. 4# Use of this source code is governed by a BSD-style 5# license that can be found in the LICENSE.md file. 6 7cd $(go list -f '{{ .Dir }}' github.com/dsnet/compress) 8 9BOLD="\x1b[1mRunning: " 10PASS="\x1b[32mPASS" 11FAIL="\x1b[31mFAIL" 12RESET="\x1b[0m" 13 14echo -e "${BOLD}fmt${RESET}" 15RET_FMT=$(find . -name "*.go" | egrep -v "/(_.*_|\..*|testdata)/" | xargs gofmt -d) 16if [[ ! -z "$RET_FMT" ]]; then echo "$RET_FMT"; echo; fi 17 18echo -e "${BOLD}test${RESET}" 19RET_TEST=$(go test -race ./... | egrep -v "^(ok|[?])\s+") 20if [[ ! -z "$RET_TEST" ]]; then echo "$RET_TEST"; echo; fi 21 22echo -e "${BOLD}staticcheck${RESET}" 23RET_SCHK=$(staticcheck \ 24 -ignore " 25 github.com/dsnet/compress/brotli/*.go:SA4016 26 github.com/dsnet/compress/brotli/*.go:S1023 27 github.com/dsnet/compress/brotli/*.go:U1000 28 github.com/dsnet/compress/bzip2/*.go:S1023 29 github.com/dsnet/compress/flate/*.go:U1000 30 github.com/dsnet/compress/internal/cgo/lzma/*.go:SA4000 31 github.com/dsnet/compress/internal/prefix/*.go:S1004 32 github.com/dsnet/compress/internal/prefix/*.go:S1023 33 github.com/dsnet/compress/internal/prefix/*.go:SA4016 34 github.com/dsnet/compress/internal/tool/bench/*.go:S1007 35 github.com/dsnet/compress/xflate/internal/meta/*.go:S1023 36 " ./... 2>&1) 37if [[ ! -z "$RET_SCHK" ]]; then echo "$RET_SCHK"; echo; fi 38 39echo -e "${BOLD}lint${RESET}" 40RET_LINT=$(golint ./... 2>&1 | 41 egrep -v "^vendor/" | 42 egrep -v "should have comment(.*)or be unexported" | 43 egrep -v "^(.*)type name will be used as(.*)by other packages" | 44 egrep -v "^brotli/transform.go:(.*)replace i [+]= 1 with i[+]{2}" | 45 egrep -v "^internal/prefix/prefix.go:(.*)replace symBits(.*) [-]= 1 with symBits(.*)[-]{2}" | 46 egrep -v "^xflate/common.go:(.*)NoCompression should be of the form" | 47 egrep -v "^exit status") 48if [[ ! -z "$RET_LINT" ]]; then echo "$RET_LINT"; echo; fi 49 50if [[ ! -z "$RET_FMT" ]] || [ ! -z "$RET_TEST" ] || [[ ! -z "$RET_SCHK" ]] || [[ ! -z "$RET_LINT" ]]; then 51 echo -e "${FAIL}${RESET}"; exit 1 52else 53 echo -e "${PASS}${RESET}"; exit 0 54fi 55