hack: introduce validate/no-module

Moby is not a Go module; to prevent anyone from mistakenly trying to
convert it to one before we are ready, introduce a check (usable in CI
and locally) for a go.mod file.

This is preferable to trying to .gitignore the file as we can ensure
that a mistakenly created go.mod is surfaced by Git-based tooling and is
less likely to surprise a contributor.

Signed-off-by: Bjorn Neergaard <bneergaard@mirantis.com>
This commit is contained in:
Bjorn Neergaard 2022-11-18 15:55:26 -07:00 committed by Bjorn Neergaard
parent a449f77774
commit 25c3421802
2 changed files with 17 additions and 2 deletions

2
.gitignore vendored
View file

@ -13,8 +13,6 @@ thumbs.db
.bashrc
.editorconfig
# top-level go.mod is not meant to be checked in
/go.mod
# build artifacts
bundles/
cli/winresources/*/*.syso

17
hack/validate/no-module Executable file
View file

@ -0,0 +1,17 @@
#!/usr/bin/env bash
#
# Check that no one is trying to commit a go.mod.
SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOTDIR="$(git -C "$SCRIPTDIR" rev-parse --show-toplevel)"
if test -e "${ROOTDIR}/go.mod"; then
{
echo 'FAIL: go.mod found in repository root!'
echo
echo ' Moby is not a Go module; please delete go.mod and try again.'
} >&2
exit 1
else
echo 'PASS: No go.mod found in repository root!'
fi