Have err remember that it was called, and exit with 1 if
anything called err.

Also, make everything go through runcmd.

Fixes b/139185529.

Change-Id: I03b673df070ea9a1cae3e458f820c566439478de
Reviewed-on: https://team-review.git.corp.google.com/c/golang/discovery/+/524055
Reviewed-by: Robert Findley <rfindley@google.com>
This commit is contained in:
Jonathan Amsterdam 2019-08-09 11:55:32 -04:00 коммит произвёл Julie Qiu
Родитель c8a0c04cbd
Коммит 8a2487598a
1 изменённых файлов: 19 добавлений и 10 удалений

Просмотреть файл

@ -15,9 +15,11 @@ else
NORMAL=""
fi
EXIT_CODE=0
info() { echo -e "${GREEN}$@${NORMAL}" 1>&2; }
warn() { echo -e "${YELLOW}$@${NORMAL}" 1>&2; }
err() { echo -e "${RED}$@${NORMAL}" 1>&2; }
err() { echo -e "${RED}$@${NORMAL}" 1>&2; EXIT_CODE=1; }
warnout() {
while read line; do
@ -70,16 +72,21 @@ ensure_go_binary() {
}
# runcmd prints an info log describing the command that is about to be run, and
# then runs it.
# then runs it. It exits the script if the command fails.
runcmd() {
info "Running: $@"
$@
msg="$@"
if [[ ${#msg} -gt 100 ]]; then
msg="${msg::100}..."
fi
info "Running: $msg"
$@ || err "command failed"
}
# check_headers checks that all source files that have been staged in this
# commit have a license header.
# commit, and all other non-third-party files in the repo, have a license
# header.
check_headers() {
# Check that all info "Checking staged files for license header"
info "Checking staged files for license header"
verify_header $(git diff --cached --name-only | grep -E ".go$|.sql$")
info "Checking internal files for license header"
verify_header $(findcode)
@ -103,15 +110,13 @@ check_bad_migrations() {
# check_staticcheck runs staticcheck on source files.
check_staticcheck() {
ensure_go_binary honnef.co/go/tools/cmd/staticcheck
info "Running: staticcheck ./... (skipping thirdparty, internal/doc, internal/render)"
staticcheck $(go list ./... | grep -v thirdparty | grep -v internal/doc | grep -v internal/render) | warnout
runcmd staticcheck $(go list ./... | grep -v thirdparty | grep -v internal/doc | grep -v internal/render) | warnout
}
# check_misspell runs misspell on source files.
check_misspell() {
ensure_go_binary github.com/client9/misspell/cmd/misspell
info "Running: misspell cmd/**/* internal/**/* README.md"
misspell cmd/**/* internal/**/* README.md | warnout
runcmd misspell cmd/**/* internal/**/* README.md | warnout
}
# check_templates runs go-template-lint on template files. Unfortunately it
@ -212,6 +217,10 @@ main() {
usage
exit 1
esac
if [[ $EXIT_CODE != 0 ]]; then
err "FAILED; see errors above"
fi
exit $EXIT_CODE
}
main $@