aboutsummaryrefslogtreecommitdiffhomepage
path: root/documents.git/hooks/sendemail-validate.sample
diff options
context:
space:
mode:
Diffstat (limited to 'documents.git/hooks/sendemail-validate.sample')
-rw-r--r--documents.git/hooks/sendemail-validate.sample77
1 files changed, 0 insertions, 77 deletions
diff --git a/documents.git/hooks/sendemail-validate.sample b/documents.git/hooks/sendemail-validate.sample
deleted file mode 100644
index 640bcf8..0000000
--- a/documents.git/hooks/sendemail-validate.sample
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-
-# An example hook script to validate a patch (and/or patch series) before
-# sending it via email.
-#
-# The hook should exit with non-zero status after issuing an appropriate
-# message if it wants to prevent the email(s) from being sent.
-#
-# To enable this hook, rename this file to "sendemail-validate".
-#
-# By default, it will only check that the patch(es) can be applied on top of
-# the default upstream branch without conflicts in a secondary worktree. After
-# validation (successful or not) of the last patch of a series, the worktree
-# will be deleted.
-#
-# The following config variables can be set to change the default remote and
-# remote ref that are used to apply the patches against:
-#
-# sendemail.validateRemote (default: origin)
-# sendemail.validateRemoteRef (default: HEAD)
-#
-# Replace the TODO placeholders with appropriate checks according to your
-# needs.
-
-validate_cover_letter () {
- file="$1"
- # TODO: Replace with appropriate checks (e.g. spell checking).
- true
-}
-
-validate_patch () {
- file="$1"
- # Ensure that the patch applies without conflicts.
- git am -3 "$file" || return
- # TODO: Replace with appropriate checks for this patch
- # (e.g. checkpatch.pl).
- true
-}
-
-validate_series () {
- # TODO: Replace with appropriate checks for the whole series
- # (e.g. quick build, coding style checks, etc.).
- true
-}
-
-# main -------------------------------------------------------------------------
-
-if test "$GIT_SENDEMAIL_FILE_COUNTER" = 1
-then
- remote=$(git config --default origin --get sendemail.validateRemote) &&
- ref=$(git config --default HEAD --get sendemail.validateRemoteRef) &&
- worktree=$(mktemp --tmpdir -d sendemail-validate.XXXXXXX) &&
- git worktree add -fd --checkout "$worktree" "refs/remotes/$remote/$ref" &&
- git config --replace-all sendemail.validateWorktree "$worktree"
-else
- worktree=$(git config --get sendemail.validateWorktree)
-fi || {
- echo "sendemail-validate: error: failed to prepare worktree" >&2
- exit 1
-}
-
-unset GIT_DIR GIT_WORK_TREE
-cd "$worktree" &&
-
-if grep -q "^diff --git " "$1"
-then
- validate_patch "$1"
-else
- validate_cover_letter "$1"
-fi &&
-
-if test "$GIT_SENDEMAIL_FILE_COUNTER" = "$GIT_SENDEMAIL_FILE_TOTAL"
-then
- git config --unset-all sendemail.validateWorktree &&
- trap 'git worktree remove -ff "$worktree"' EXIT &&
- validate_series
-fi