[PATCH 03/16] email-lda: introduce the 'queue_series' helper
Keller, Jacob E
jacob.e.keller at intel.com
Thu Feb 6 13:19:17 PST 2014
On Thu, 2014-02-06 at 18:30 +0200, Artem Bityutskiy wrote:
> From: Jacob Keller <jacob.e.keller at intel.com>
>
> Artem: this is part of a bigger patch from Jacob, which I made to be a separate
> patch. So Jacob is the author, but I am writing the commit message.
>
> Introduce a separate function for queueing a patch series. This is a bit more
> readable, and also this is a preparation for further changes.
>
> Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
> ---
> email/aiaiai-email-lda | 78 ++++++++++++++++++++++++++++----------------------
> 1 file changed, 43 insertions(+), 35 deletions(-)
>
> diff --git a/email/aiaiai-email-lda b/email/aiaiai-email-lda
> index 446b32a..f00c718 100755
> --- a/email/aiaiai-email-lda
> +++ b/email/aiaiai-email-lda
> @@ -175,6 +175,48 @@ series_is_complete()
> fi
> }
>
> +queue_series()
> +{
> + local dir="$1"; shift
> + local n="$1"; shift
> +
> + message "Patch-set at \"$dir\" is complete, queue it"
> + # Don't add the 0th patch to the final mbox, as it is just the
> + # cover letter and does not contain any patch
> + for fname in $(ls --ignore=0 -A -- "$dir" | sort -n); do
> + cat -- "$dir/$fname" >> "$mbox"
> + printf "\n" >> "$mbox"
> + done
> +
> + if [ -f "$dir/0" ]; then
> + # Save the subject and message ID of the cover letter in the
> + # final mbox in order to be able to reply to the cover letter
> + # later.
> + local subj="$(fetch_header "Subject" < "$dir/0")"
> + subj="X-Aiaiai-Cover-Letter-Subject: $subj"
> +
> + local id="$(fetch_header "Message-Id" < "$dir/0")"
> + id="X-Aiaiai-Cover-Letter-Message-Id: $id"
> +
> + # The below trick allows us to avoid creating a separate
> + # temporary file: open the "$mbox" file, unlink, use the open
> + # file descriptor for reading and redirect the output to the
> + # new version of the "$mbox" file. We could instead use the
> + # "sponge" tool, though.
> + exec 3<$mbox
> + rm $verbose "$mbox" >&2
> + message "Adding \"$subj\""
> + formail -s formail -I "$subj" <&3 > "$mbox"
> +
> + exec 3<$mbox
> + rm $verbose "$mbox" >&2
> + message "Adding \"$id\""
> + formail -s formail -I "$id" <&3 > "$mbox"
> + fi
> + queue_mboxfile
> + rm $verbose -rf -- "$dir" >&2
> +}
> +
> move_to_series()
> {
> local file="$1"; shift
> @@ -275,41 +317,7 @@ EOF
>
> # If the series is complete - queue it
> if series_is_complete "$dir" "$n"; then
> - message "Patch-set at \"$dir\" is complete, queue it"
> - # Don't add the 0th patch to the final mbox, as it is just the
> - # cover letter and does not contain any patch
> - for fname in $(ls --ignore=0 -A -- "$dir" | sort -n); do
> - cat -- "$dir/$fname" >> "$mbox"
> - echo >> "$mbox"
> - done
> -
> - if [ -f "$dir/0" ]; then
> - # Save the subject and message ID of the cover letter
> - # in the final mbox in order to be able to reply to the
> - # cover letter later.
> - local subj="$(fetch_header "Subject" < "$dir/0")"
> - subj="X-Aiaiai-Cover-Letter-Subject: $subj"
> -
> - local id="$(fetch_header "Message-Id" < "$dir/0")"
> - id="X-Aiaiai-Cover-Letter-Message-Id: $id"
> -
> - # The below trick allows us to avoid creating a
> - # separate temporary file: open the "$mbox" file,
> - # unlink, use the open file descriptor for reading and
> - # redirect the output to the new version of the "$mbox"
> - # file. We could instead use the "sponge" tool, though.
> - exec 3<$mbox
> - rm $verbose "$mbox" >&2
> - message "Adding \"$subj\""
> - formail -s formail -I "$subj" <&3 > "$mbox"
> -
> - exec 3<$mbox
> - rm $verbose "$mbox" >&2
> - message "Adding \"$id\""
> - formail -s formail -I "$id" <&3 > "$mbox"
> - fi
> - queue_mboxfile
> - rm $verbose -rf -- "$dir" >&2
> + queue_series "$dir" "$n"
> fi
> }
>
Agreed. I'm surprised I didn't separate this out myself.
Thanks!
Much nicer than the larger patch.
Regards,
Jake
More information about the aiaiai
mailing list