# syntax=docker/dockerfile:1 ARG ALPINE_VERSION=3.20 FROM alpine:${ALPINE_VERSION} AS gen RUN apk add --no-cache git WORKDIR /src RUN --mount=type=bind,target=. <<EOT set -e mkdir /out # see also ".mailmap" for how email addresses and names are deduplicated { echo "# This file lists all individuals having contributed content to the repository." echo "# For how it is generated, see dockerfiles/authors.Dockerfile." echo git log --format='%aN <%aE>' | LC_ALL=C.UTF-8 sort -uf } > /out/AUTHORS cat /out/AUTHORS EOT FROM scratch AS update COPY --from=gen /out / FROM gen AS validate RUN --mount=type=bind,target=.,rw <<EOT set -e git add -A cp -rf /out/* . if [ -n "$(git status --porcelain -- AUTHORS)" ]; then echo >&2 'ERROR: Authors result differs. Please update with "make authors"' git status --porcelain -- AUTHORS exit 1 fi EOT