Add .tmux/plugins/tpm/HOW_TO_PLUGIN.md Add .tmux/plugins/tpm/LICENSE.md Add .tmux/plugins/tpm/README.md Add .tmux/plugins/tpm/bin/clean_plugins Add .tmux/plugins/tpm/bin/install_plugins Add .tmux/plugins/tpm/bin/update_plugins Add .tmux/plugins/tpm/bindings/clean_plugins Add .tmux/plugins/tpm/bindings/install_plugins Add .tmux/plugins/tpm/bindings/update_plugins Add .tmux/plugins/tpm/docs/automatic_tpm_installation.md Add .tmux/plugins/tpm/docs/changing_plugins_install_dir.md Add .tmux/plugins/tpm/docs/how_to_create_plugin.md Add .tmux/plugins/tpm/docs/managing_plugins_via_cmd_line.md Add .tmux/plugins/tpm/docs/tpm_not_working.md Add .tmux/plugins/tpm/.git/HEAD Add .tmux/plugins/tpm/.git/config Add .tmux/plugins/tpm/.git/description Add .tmux/plugins/tpm/.git/hooks/applypatch-msg.sample Add .tmux/plugins/tpm/.git/hooks/commit-msg.sample Add .tmux/plugins/tpm/.git/hooks/fsmonitor-watchman.sample Add .tmux/plugins/tpm/.git/hooks/post-update.sample Add .tmux/plugins/tpm/.git/hooks/pre-applypatch.sample Add .tmux/plugins/tpm/.git/hooks/pre-commit.sample Add .tmux/plugins/tpm/.git/hooks/pre-merge-commit.sample Add .tmux/plugins/tpm/.git/hooks/pre-push.sample Add .tmux/plugins/tpm/.git/hooks/pre-rebase.sample Add .tmux/plugins/tpm/.git/hooks/pre-receive.sample Add .tmux/plugins/tpm/.git/hooks/prepare-commit-msg.sample Add .tmux/plugins/tpm/.git/hooks/push-to-checkout.sample Add .tmux/plugins/tpm/.git/hooks/sendemail-validate.sample Add .tmux/plugins/tpm/.git/hooks/update.sample Add .tmux/plugins/tpm/.git/index Add .tmux/plugins/tpm/.git/info/exclude Add .tmux/plugins/tpm/.git/logs/HEAD Add .tmux/plugins/tpm/.git/logs/refs/heads/master Add .tmux/plugins/tpm/.git/logs/refs/remotes/origin/HEAD Add .tmux/plugins/tpm/.git/objects/info/.keep Add .tmux/plugins/tpm/.git/objects/pack/pack-1f8e91c4b0c2fd3de85deb1de59db344d5af0319.idx Add .tmux/plugins/tpm/.git/objects/pack/pack-1f8e91c4b0c2fd3de85deb1de59db344d5af0319.pack Add .tmux/plugins/tpm/.git/objects/pack/pack-1f8e91c4b0c2fd3de85deb1de59db344d5af0319.rev Add .tmux/plugins/tpm/.git/packed-refs Add .tmux/plugins/tpm/.git/refs/heads/master Add .tmux/plugins/tpm/.git/refs/remotes/origin/HEAD Add .tmux/plugins/tpm/.git/refs/tags/.keep Add .tmux/plugins/tpm/.gitattributes Add .tmux/plugins/tpm/.gitignore Add .tmux/plugins/tpm/.gitmodules Add .tmux/plugins/tpm/.travis.yml Add .tmux/plugins/tpm/tpm Add .tmux/plugins/tpm/lib/tmux-test/.keep Add .tmux/plugins/tpm/scripts/check_tmux_version.sh Add .tmux/plugins/tpm/scripts/clean_plugins.sh Add .tmux/plugins/tpm/scripts/install_plugins.sh Add .tmux/plugins/tpm/scripts/source_plugins.sh Add .tmux/plugins/tpm/scripts/update_plugin.sh Add .tmux/plugins/tpm/scripts/update_plugin_prompt_handler.sh Add .tmux/plugins/tpm/scripts/helpers/plugin_functions.sh Add .tmux/plugins/tpm/scripts/helpers/shell_echo_functions.sh Add .tmux/plugins/tpm/scripts/helpers/tmux_echo_functions.sh Add .tmux/plugins/tpm/scripts/helpers/tmux_utils.sh Add .tmux/plugins/tpm/scripts/helpers/utility.sh Add .tmux/plugins/tpm/scripts/variables.sh Add .tmux/plugins/tpm/tests/expect_failed_plugin_download Add .tmux/plugins/tpm/tests/expect_successful_clean_plugins Add .tmux/plugins/tpm/tests/expect_successful_multiple_plugins_download Add .tmux/plugins/tpm/tests/expect_successful_plugin_download Add .tmux/plugins/tpm/tests/expect_successful_update_of_a_single_plugin Add .tmux/plugins/tpm/tests/expect_successful_update_of_all_plugins Add .tmux/plugins/tpm/tests/test_plugin_clean.sh Add .tmux/plugins/tpm/tests/test_plugin_installation.sh Add .tmux/plugins/tpm/tests/test_plugin_installation_legacy.sh Add .tmux/plugins/tpm/tests/test_plugin_sourcing.sh Add .tmux/plugins/tpm/tests/test_plugin_update.sh Add .tmux/plugins/tpm/tests/helpers/tpm.sh
77 lines
2.3 KiB
Bash
77 lines
2.3 KiB
Bash
#!/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
|