dep/hack/validate-gofmt.bash

39 строки
968 B
Bash
Executable File

#!/usr/bin/env bash
# Copyright 2017 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
#
# This script will validate that `go fmt` has been ran
# and is passing for certain directories in the project.
#
# Here we use `go list` to help determine which packages
# we need to check for `go fmt`
#
# EXIT 0 - The check is successful
# EXIT 1 - The check has failed
PKGS=$(go list ./... | grep -v /vendor/)
REPO_TLD="github.com/golang/dep"
IGNORE_PKGS=". ./gps"
for PKG in $PKGS; do
RELATIVE_PATH="${PKG/$REPO_TLD/.}"
i=0
for IGNORE_PKG in $IGNORE_PKGS; do
if [ "${IGNORE_PKG}" == $RELATIVE_PATH ]; then
i=1
fi
done;
if [ $i -eq 1 ]; then
continue
fi
echo "Processing gofmt for: ${PKG}"
gofmt -s -l $RELATIVE_PATH
if [ $? -ne 0 ]; then
echo "GO FMT FAILURE: ${PKG}"
exit 1
fi
done;
exit 0