| #!/usr/bin/env bash |
| set -e |
| set -o pipefail |
| |
| PROJ="go-systemd" |
| ORG_PATH="github.com/coreos" |
| REPO_PATH="${ORG_PATH}/${PROJ}" |
| |
| PACKAGES="activation daemon dbus journal login1 machine1 sdjournal unit util" |
| EXAMPLES="activation listen udpconn" |
| |
| function build_source { |
| go build ./... |
| } |
| |
| function build_tests { |
| rm -rf ./test_bins ; mkdir -p ./test_bins |
| for pkg in ${PACKAGES}; do |
| echo " - ${pkg}" |
| go test -c -o ./test_bins/${pkg}.test ./${pkg} |
| done |
| for ex in ${EXAMPLES}; do |
| echo " - examples/${ex}" |
| go build -o ./test_bins/${ex}.example ./examples/activation/${ex}.go |
| done |
| } |
| |
| function run_tests { |
| pushd test_bins |
| sudo -v |
| for pkg in ${PACKAGES}; do |
| echo " - ${pkg}" |
| sudo -E ./${pkg}.test -test.v |
| done |
| popd |
| rm -rf ./test_bins |
| } |
| |
| function go_fmt { |
| for pkg in ${PACKAGES}; do |
| echo " - ${pkg}" |
| fmtRes=$(gofmt -l "./${pkg}") |
| if [ -n "${fmtRes}" ]; then |
| echo -e "gofmt checking failed:\n${fmtRes}" |
| exit 255 |
| fi |
| done |
| } |
| |
| function go_vet { |
| for pkg in ${PACKAGES}; do |
| echo " - ${pkg}" |
| vetRes=$(go vet "./${pkg}") |
| if [ -n "${vetRes}" ]; then |
| echo -e "govet checking failed:\n${vetRes}" |
| exit 254 |
| fi |
| done |
| } |
| |
| function license_check { |
| licRes=$(for file in $(find . -type f -iname '*.go' ! -path './vendor/*'); do |
| head -n3 "${file}" | grep -Eq "(Copyright|generated|GENERATED)" || echo -e " ${file}" |
| done;) |
| if [ -n "${licRes}" ]; then |
| echo -e "license header checking failed:\n${licRes}" |
| exit 253 |
| fi |
| } |
| |
| export GO15VENDOREXPERIMENT=1 |
| |
| subcommand="$1" |
| case "$subcommand" in |
| "build_source" ) |
| echo "Building source..." |
| build_source |
| ;; |
| |
| "build_tests" ) |
| echo "Building tests..." |
| build_tests |
| ;; |
| |
| "run_tests" ) |
| echo "Running tests..." |
| run_tests |
| ;; |
| |
| "go_fmt" ) |
| echo "Checking gofmt..." |
| go_fmt |
| ;; |
| |
| "go_vet" ) |
| echo "Checking govet..." |
| go_vet |
| ;; |
| |
| "license_check" ) |
| echo "Checking licenses..." |
| license_check |
| ;; |
| |
| * ) |
| echo "Error: unrecognized subcommand." |
| exit 1 |
| ;; |
| esac |