merge(third_party/git): Merge squashed git subtree at v2.23.0
Merge commit '1b593e1ea4' as 'third_party/git'
This commit is contained in:
commit
7ef0d62730
3629 changed files with 1139935 additions and 0 deletions
101
third_party/git/contrib/hooks/multimail/post-receive.example
vendored
Executable file
101
third_party/git/contrib/hooks/multimail/post-receive.example
vendored
Executable file
|
|
@ -0,0 +1,101 @@
|
|||
#! /usr/bin/env python
|
||||
|
||||
"""Example post-receive hook based on git-multimail.
|
||||
|
||||
The simplest way to use git-multimail is to use the script
|
||||
git_multimail.py directly as a post-receive hook, and to configure it
|
||||
using Git's configuration files and command-line parameters. You can
|
||||
also write your own Python wrapper for more advanced configurability,
|
||||
using git_multimail.py as a Python module.
|
||||
|
||||
This script is a simple example of such a post-receive hook. It is
|
||||
intended to be customized before use; see the comments in the script
|
||||
to help you get started.
|
||||
|
||||
Using git-multimail as a Python module as done here provides more
|
||||
flexibility. It has the following advantages:
|
||||
|
||||
* The tool's behavior can be customized using arbitrary Python code,
|
||||
without having to edit git_multimail.py.
|
||||
|
||||
* Configuration settings can be read from other sources; for example,
|
||||
user names and email addresses could be read from LDAP or from a
|
||||
database. Or the settings can even be hardcoded in the importing
|
||||
Python script, if this is preferred.
|
||||
|
||||
This script is a very basic example of how to use git_multimail.py as
|
||||
a module. The comments below explain some of the points at which the
|
||||
script's behavior could be changed or customized.
|
||||
|
||||
"""
|
||||
|
||||
import sys
|
||||
|
||||
# If necessary, add the path to the directory containing
|
||||
# git_multimail.py to the Python path as follows. (This is not
|
||||
# necessary if git_multimail.py is in the same directory as this
|
||||
# script):
|
||||
|
||||
#LIBDIR = 'path/to/directory/containing/module'
|
||||
#sys.path.insert(0, LIBDIR)
|
||||
|
||||
import git_multimail
|
||||
|
||||
# It is possible to modify the output templates here; e.g.:
|
||||
|
||||
#git_multimail.FOOTER_TEMPLATE = """\
|
||||
#
|
||||
#-- \n\
|
||||
#This email was generated by the wonderful git-multimail tool.
|
||||
#"""
|
||||
|
||||
|
||||
# Specify which "git config" section contains the configuration for
|
||||
# git-multimail:
|
||||
config = git_multimail.Config('multimailhook')
|
||||
|
||||
# Set some Git configuration variables. Equivalent to passing var=val
|
||||
# to "git -c var=val" each time git is called, or to adding the
|
||||
# configuration in .git/config (must come before instanciating the
|
||||
# environment) :
|
||||
#git_multimail.Config.add_config_parameters('multimailhook.commitEmailFormat=html')
|
||||
#git_multimail.Config.add_config_parameters(('user.name=foo', 'user.email=foo@example.com'))
|
||||
|
||||
# Select the type of environment:
|
||||
try:
|
||||
environment = git_multimail.GenericEnvironment(config=config)
|
||||
#environment = git_multimail.GitoliteEnvironment(config=config)
|
||||
except git_multimail.ConfigurationException:
|
||||
sys.stderr.write('*** %s\n' % sys.exc_info()[1])
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
# Choose the method of sending emails based on the git config:
|
||||
mailer = git_multimail.choose_mailer(config, environment)
|
||||
|
||||
# Alternatively, you may hardcode the mailer using code like one of
|
||||
# the following:
|
||||
|
||||
# Use "/usr/sbin/sendmail -oi -t" to send emails. The envelopesender
|
||||
# argument is optional:
|
||||
#mailer = git_multimail.SendMailer(
|
||||
# command=['/usr/sbin/sendmail', '-oi', '-t'],
|
||||
# envelopesender='git-repo@example.com',
|
||||
# )
|
||||
|
||||
# Use Python's smtplib to send emails. Both arguments are required.
|
||||
#mailer = git_multimail.SMTPMailer(
|
||||
# environment=environment,
|
||||
# envelopesender='git-repo@example.com',
|
||||
# # The smtpserver argument can also include a port number; e.g.,
|
||||
# # smtpserver='mail.example.com:25'
|
||||
# smtpserver='mail.example.com',
|
||||
# )
|
||||
|
||||
# OutputMailer is intended only for testing; it writes the emails to
|
||||
# the specified file stream.
|
||||
#mailer = git_multimail.OutputMailer(sys.stdout)
|
||||
|
||||
|
||||
# Read changes from stdin and send notification emails:
|
||||
git_multimail.run_as_post_receive_hook(environment, mailer)
|
||||
Loading…
Add table
Add a link
Reference in a new issue