summary refs log tree commit diff
path: root/git-fetch-email.sh
diff options
context:
space:
mode:
Diffstat (limited to 'git-fetch-email.sh')
-rw-r--r--git-fetch-email.sh15
1 files changed, 14 insertions, 1 deletions
diff --git a/git-fetch-email.sh b/git-fetch-email.sh
index 52aa74f..6109091 100644
--- a/git-fetch-email.sh
+++ b/git-fetch-email.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-# Copyright (C) 2019, 2020  C. McEnroe <june@causal.agency>
+# Copyright (C) 2019-2021  C. McEnroe <june@causal.agency>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -27,12 +27,14 @@ subject=$(git config fetchemail.subject)
 from=$(git config fetchemail.from)
 to=$(git config fetchemail.to)
 cc=$(git config fetchemail.cc)
+move=$(git config fetchemail.moveTo)
 
 OPTS_SPEC="\
 git fetch-email [<options>]
 --
 C,cc= fetch patches with matching Cc headers
 F,from= fetch patches with matching From headers
+M,move-to= move patches to mailbox
 S,subject= fetch patches with matching Subject headers
 T,to= fetch patches with matching To headers
 a,apply apply patches with git-am
@@ -50,6 +52,7 @@ while [ $# -gt 0 ]; do
 	case "${opt}" in
 		(-C) cc=$1; shift;;
 		(-F) from=$1; shift;;
+		(-M) move=$1; shift;;
 		(-S) subject=$1; shift;;
 		(-T) to=$1; shift;;
 		(-a) apply=yes;;
@@ -61,6 +64,7 @@ while [ $# -gt 0 ]; do
 		(--no-apply) apply=;;
 		(--no-cc) cc=;;
 		(--no-from) from=;;
+		(--no-move-to) move=;;
 		(--no-subject) subject=;;
 		(--no-to) to=;;
 		(--no-verbose) verbose=;;
@@ -96,6 +100,7 @@ fetch() {
 		${from:+-F "${from}"} \
 		${to:+-T "${to}"} \
 		${cc:+-C "${cc}"} \
+		${move:+-M "${move}"} \
 		${user}
 	status=$?
 	if [ $status -ne 78 ]; then
@@ -107,7 +112,15 @@ fetch() {
 }
 
 if [ -n "${apply}" ]; then
+	applyMove=$move
+	move=
 	fetch | git am --patch-format=mboxrd "$@"
+	status=$?
+	if [ $status -eq 0 ] && [ -n "${applyMove}" ]; then
+		move=$applyMove
+		fetch
+	fi
+	exit $status
 else
 	fetch
 fi