Skip to content

Commit

Permalink
Merge branch 'master' into 2410-fix-snapshot
Browse files Browse the repository at this point in the history
  • Loading branch information
ainar-g committed Dec 10, 2020
2 parents ba5fc4c + e02308d commit 6718e01
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 9 deletions.
2 changes: 2 additions & 0 deletions HACKING.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,8 @@ The rules are mostly sorted in the alphabetical order.
* Put spaces within `$( cmd )`, `$(( expr ))`, and `{ cmd; }`.
* `snake_case`, not `camelCase`.
* Use `set -e -f -u` and also `set -x` in verbose mode.
* Use the `"$var"` form instead of the `$var` form, unless word splitting is
Expand Down
38 changes: 29 additions & 9 deletions scripts/go-lint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,44 @@ test "${EXITONERROR:=1}" = '0' && set +e || set -e
# variables.
set -f -u

# blocklistimports is a simple check against unwanted packages.
not_found_msg='
looks like a binary not found error.
make sure you have installed the linter binaries using:
$ make go-install-tools
'

not_found() {
if [ "$?" = '127' ]
then
# Code 127 is the exit status a shell uses when
# a command or a file is not found, according to the
# Bash Hackers wiki.
#
# See https://wiki.bash-hackers.org/dict/terms/exit_status.
echo "$not_found_msg" 1>&2
fi
}
trap not_found EXIT

# blocklist_imports is a simple check against unwanted packages.
# Currently it only looks for package log which is replaced by our own
# package github.com/AdguardTeam/golibs/log.
blocklistimports () {
blocklist_imports() {
git grep -F -e '"log"' -- '*.go' || exit 0;
}

# underscores is a simple check against Go filenames with underscores.
underscores () {
underscores() {
git ls-files '*_*.go' | { grep -F -e '_darwin.go' \
-e '_freebsd.go' -e '_linux.go' -e '_others.go' \
-e '_test.go' -e '_unix.go' -e '_windows.go' \
-v || exit 0; }
}

# exitonoutput exits with a nonzero exit code if there is anything in
# exit_on_output exits with a nonzero exit code if there is anything in
# the command's combined output.
exitonoutput() {
exit_on_output() {
test "$VERBOSE" -lt '2' && set +x

cmd="$1"
Expand All @@ -57,11 +77,11 @@ exitonoutput() {
return "$exitcode"
}

exitonoutput blocklistimports
exit_on_output blocklist_imports

exitonoutput underscores
exit_on_output underscores

exitonoutput gofumpt --extra -l -s .
exit_on_output gofumpt --extra -l -s .

golint --set_exit_status ./...

Expand All @@ -87,7 +107,7 @@ nilness ./...
# TODO(a.garipov): Enable errcheck fully after handling all errors,
# including the deferred ones, properly. Also, perhaps, enable --blank.
# errcheck ./...
exitonoutput sh -c '
exit_on_output sh -c '
errcheck --asserts ./... |\
{ grep -e "defer" -e "_test\.go:" -v || exit 0; }
'
Expand Down

0 comments on commit 6718e01

Please sign in to comment.