+In addition to the common variables, the patch e-mail template accepts
+the following:
+
+ %(authdate)s - patch creation date
+ %(authemail)s - author's email
+ %(authname)s - author's name
+ %(commemail)s - committer's e-mail
+ %(commname)s - committer's name
+ %(diff)s - unified diff of the patch
+ %(fromauth)s - 'From: author\n\n' if different from sender
+ %(longdescr)s - the rest of the patch description, after the first line
+ %(patch)s - patch name
+ %(prefix)s - 'prefix ' string passed on the command line
+ %(shortdescr)s - the first line of the patch description"""
+
+args = [argparse.patch_range(argparse.applied_patches,
+ argparse.unapplied_patches,
+ argparse.hidden_patches)]
+options = [
+ opt('-a', '--all', action = 'store_true',
+ short = 'E-mail all the applied patches'),
+ opt('--to', action = 'append',
+ short = 'Add TO to the To: list'),
+ opt('--cc', action = 'append',
+ short = 'Add CC to the Cc: list'),
+ opt('--bcc', action = 'append',
+ short = 'Add BCC to the Bcc: list'),
+ opt('--auto', action = 'store_true',
+ short = 'Automatically cc the patch signers'),
+ opt('--noreply', action = 'store_true',
+ short = 'Do not send subsequent messages as replies'),
+ opt('--unrelated', action = 'store_true',
+ short = 'Send patches without sequence numbering'),
+ opt('--attach', action = 'store_true',
+ short = 'Send a patch as attachment'),
+ opt('-v', '--version', metavar = 'VERSION',
+ short = 'Add VERSION to the [PATCH ...] prefix'),
+ opt('--prefix', metavar = 'PREFIX',
+ short = 'Add PREFIX to the [... PATCH ...] prefix'),
+ opt('-t', '--template', metavar = 'FILE',
+ short = 'Use FILE as the message template'),
+ opt('-c', '--cover', metavar = 'FILE',
+ short = 'Send FILE as the cover message'),
+ opt('-e', '--edit-cover', action = 'store_true',
+ short = 'Edit the cover message before sending'),
+ opt('-E', '--edit-patches', action = 'store_true',
+ short = 'Edit each patch before sending'),
+ opt('-s', '--sleep', type = 'int', metavar = 'SECONDS',
+ short = 'Sleep for SECONDS between e-mails sending'),
+ opt('--refid',
+ short = 'Use REFID as the reference id'),
+ opt('--smtp-server', metavar = 'HOST[:PORT] or "/path/to/sendmail -t -i"',
+ short = 'SMTP server or command to use for sending mail'),
+ opt('-u', '--smtp-user', metavar = 'USER',
+ short = 'Username for SMTP authentication'),
+ opt('-p', '--smtp-password', metavar = 'PASSWORD',
+ short = 'Password for SMTP authentication'),
+ opt('-T', '--smtp-tls', action = 'store_true',
+ short = 'Use SMTP with TLS encryption'),
+ opt('-b', '--branch', args = [argparse.stg_branches],
+ short = 'Use BRANCH instead of the default branch'),
+ opt('-m', '--mbox', action = 'store_true',
+ short = 'Generate an mbox file instead of sending')
+ ] + argparse.diff_opts_option()
+
+directory = DirectoryHasRepository(log = False)