#!/bin/sh echo "Checking code quality (you want to see no output here)" echo "" echo "" echo "Running staticcheck..." staticcheck lib.go staticcheck ./utils/* # In the future we should remove include-pkgs. However, there are a few false positives in the overall go stdlib that make this # too noisy right now, specifically assigning nil to initialize slices (safe), and using go internal context channels assigned # nil (also safe). # We also have one file infinite_channel.go written in a way that static analysis cannot reason about easily. So it is explictly # ignored. echo "Running nilaway..." nilaway -include-pkgs="git.openprivacy.ca/cwtch.im/cwtch-autobindings,cwtch.im/cwtch,cwtch.im/tapir,git.openprivacy.ca/openprivacy/connectivity" -exclude-errors-in-files="./templates/lib_template.go" -exclude-file-docstrings="nolint:nilaway" lib.go nilaway -include-pkgs="git.openprivacy.ca/cwtch.im/cwtch-autobindings,cwtch.im/cwtch,cwtch.im/tapir,git.openprivacy.ca/openprivacy/connectivity" -exclude-errors-in-files="./templates/lib_template.go" -exclude-file-docstrings="nolint:nilaway" ./utils/ echo "Time to format" gofmt -l -s -w ./utils/* gofmt -l -s -w ./generate/* # ineffassign (https://github.com/gordonklaus/ineffassign) # echo "Checking for ineffectual assignment of errors (unchecked errors...)" # ineffassign . # misspell (https://github.com/client9/misspell/cmd/misspell) # echo "Checking for misspelled words..." # misspell . | grep -v "testing/" | grep -v "vendor/" | grep -v "go.sum" | grep -v ".idea"