aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Weißschuh <thomas@t-8ch.de>2023-02-17 03:58:58 +0000
committerKonstantin Ryabitsev <konstantin@linuxfoundation.org>2023-03-03 15:01:18 -0500
commit321e4bb6da5ab1113f379daa9afba8b8773ba321 (patch)
treea87db975cfc744f8ce4eb4fd6a135307d623c3d3
parentada3021c64dd484e53219eb3af55da6c8f25d0ec (diff)
downloadb4-321e4bb6da5ab1113f379daa9afba8b8773ba321.tar.gz
ez: send: make argument to --resend optional
This frees the user from having to specifying an explicit version to resend. Most of the time this should be the latest version. Link: https://msgid.link/20230217-resend-auto-version-v2-1-0830b9733993@t-8ch.de Signed-off-by: Konstantin Ryabitsev <konstantin@linuxfoundation.org>
-rw-r--r--b4/command.py2
-rw-r--r--b4/ez.py10
-rw-r--r--man/b4.54
-rw-r--r--man/b4.5.rst4
4 files changed, 13 insertions, 7 deletions
diff --git a/b4/command.py b/b4/command.py
index a7a5aa9..b38d69c 100644
--- a/b4/command.py
+++ b/b4/command.py
@@ -319,7 +319,7 @@ def setup_parser() -> argparse.ArgumentParser:
sp_send.add_argument('--cc', nargs='+', help='Addresses to add to the Cc: list')
sp_send.add_argument('--not-me-too', action='store_true', default=False,
help='Remove yourself from the To: or Cc: list')
- sp_send.add_argument('--resend', metavar='vN', default=None,
+ sp_send.add_argument('--resend', metavar='vN', nargs='?', const='latest',
help='Resend a previously sent version of the series')
sp_send.add_argument('--no-sign', action='store_true', default=False,
help='Do not add the cryptographic attestation signature header')
diff --git a/b4/ez.py b/b4/ez.py
index 74afddc..625a27c 100644
--- a/b4/ez.py
+++ b/b4/ez.py
@@ -1257,10 +1257,16 @@ def cmd_send(cmdargs: argparse.Namespace) -> None:
tag_msg = None
cl_msgid = None
if cmdargs.resend:
- tagname, revision = get_sent_tagname(mybranch, SENT_TAG_PREFIX, cmdargs.resend)
+ if cmdargs.resend == 'latest':
+ cover, tracking = load_cover()
+ revstr = tracking['series']['revision'] - 1
+ else:
+ revstr = cmdargs.resend
+
+ tagname, revision = get_sent_tagname(mybranch, SENT_TAG_PREFIX, revstr)
if revision is None:
- logger.critical('Could not figure out revision from %s', cmdargs.resend)
+ logger.critical('Could not figure out revision from %s', revstr)
sys.exit(1)
try:
diff --git a/man/b4.5 b/man/b4.5
index fef1e87..867ab35 100644
--- a/man/b4.5
+++ b/man/b4.5
@@ -604,7 +604,7 @@ Enroll current branch, using the passed tag, branch, or commit as fork base
.INDENT 0.0
.TP
.B usage:
-b4 send [\-h] [\-d] [\-o OUTPUT_DIR] [\-\-reflect] [\-\-no\-trailer\-to\-cc] [\-\-to TO [TO ...]] [\-\-cc CC [CC ...]] [\-\-not\-me\-too] [\-\-resend RESEND] [\-\-no\-sign] [\-\-web\-auth\-new] [\-\-web\-auth\-verify VERIFY_TOKEN]
+b4 send [\-h] [\-d] [\-o OUTPUT_DIR] [\-\-reflect] [\-\-no\-trailer\-to\-cc] [\-\-to TO [TO ...]] [\-\-cc CC [CC ...]] [\-\-not\-me\-too] [\-\-resend [RESEND]] [\-\-no\-sign] [\-\-web\-auth\-new] [\-\-web\-auth\-verify VERIFY_TOKEN]
.TP
.B options:
.INDENT 7.0
@@ -637,7 +637,7 @@ Addresses to add to the Cc: list
.B \-\-not\-me\-too
Remove yourself from the To: or Cc: list
.TP
-.BI \-\-resend \ RESEND
+.BI \-\-resend \ [RESEND]
Resend a previously sent version of the series
.TP
.B \-\-no\-sign
diff --git a/man/b4.5.rst b/man/b4.5.rst
index 31beae4..3b442c9 100644
--- a/man/b4.5.rst
+++ b/man/b4.5.rst
@@ -390,7 +390,7 @@ Enroll existing branch:
b4 send
~~~~~~~
usage:
- b4 send [-h] [-d] [-o OUTPUT_DIR] [--reflect] [--no-trailer-to-cc] [--to TO [TO ...]] [--cc CC [CC ...]] [--not-me-too] [--resend RESEND] [--no-sign] [--web-auth-new] [--web-auth-verify VERIFY_TOKEN]
+ b4 send [-h] [-d] [-o OUTPUT_DIR] [--reflect] [--no-trailer-to-cc] [--to TO [TO ...]] [--cc CC [CC ...]] [--not-me-too] [--resend [RESEND]] [--no-sign] [--web-auth-new] [--web-auth-verify VERIFY_TOKEN]
options:
-h, --help show this help message and exit
@@ -411,7 +411,7 @@ options:
--not-me-too
Remove yourself from the To: or Cc: list
- --resend RESEND
+ --resend [RESEND]
Resend a previously sent version of the series
--no-sign
Do not add the cryptographic attestation signature header