The Advent of Void: Day 19: mblaze part 2
Today is a followup on yesterdays mblaze(7) post.
This time I show how I use mblaze to send and receive patches using
git and mblaze(7) as example.
First I create a patch file with
git format-patch, afterwards I use mcom(1) to compose a new mail to that I deliver to my local mailbox for this example.
voidlinux.github.com@pi$ git format-patch HEAD~1 0001-The-Advent-of-Void-Day-18-mblaze-fixup.patch voidlinux.github.com@pi$ mcom firstname.lastname@example.org To: email@example.com Cc: Bcc: Subject: [PATCH] mblaze advent fixup Message-Id: <EWKLTW37CF.2MS3C7VXW22M0@pi.lan> User-Agent: mblaze/0.2-56-g29d8946-dirty (2017-12-18) Attachments can be added by starting a line with `#` following the content type and the file name. #text/plain 0001-The-Advent-of-Void-Day-18-mblaze-fixup.patch "./snd.0" 11L, 332C written What now? ([s]end, [c]ancel, [d]elete, [e]dit, [m]ime, sign, encrypt) m ./snd.0.mime 1: multipart/mixed size=4342 2: text/plain size=100 3: text/plain size=3552 name="0001-The-Advent-of-Void-Day-18-mblaze-fixup.patch" What now? ([s]end, [c]ancel, [d]elete, [e]dit, [m]ime, sign, encrypt) s
First mcom(1) opened my
$EDITOR with a template mail, I added the subject, the body and my patch as attachment, using the
#contenttype filename syntax.
Then I write the file and close my editor (
:wq), mcom(1) asks me then what to do next.
[m]ime first to attach the attachment, mime is requiered for mails that contain multiple parts.
mcom(1) asks me again what to do next and I choose
[s]end to deliver the mail.
On my system opensmtpd(8) delivers local mails to a maildir.
When the mail is delivered I use minc(1) to incorporate the new mails into maildirs
cur directory and use mlist(1) and mseq(1) to create a new sequence to work with.
With the new sequence I can now use mless(1) to read and navigate through my mails.
voidlinux.github.com@pi$ minc ~/mail/local -q voidlinux.github.com@pi$ mlist ~/mail/local | mseq -S voidlinux.github.com@pi$ mless >. 1 Wed 01:30 firstname.lastname@example.org [PATCH] mblaze advent fixup From: <email@example.com> Subject: [PATCH] mblaze advent fixup To: firstname.lastname@example.org Cc: Date: Wed, 20 Dec 2017 01:30:05 +0100 (45 minutes, 6 seconds ago) --- 1: multipart/mixed size=4342 --- --- --- 2: text/plain size=100 charset="UTF-8" render="mflow -f" --- Attachments can be added by starting a line with `#` following the content type and the file name. --- --- 3: text/plain size=3552 name="0001-The-Advent-of-Void-Day-18-mblaze-fixup.patch" render="mflow -f" --- From 84eb8bea765561c2b4bb0b2b2d239393eb5c97f5 Mon Sep 17 00:00:00 2001 [...]
Because the mail contains a patch I want to apply I use mshow(1)s
-t flag to get a list of the parts in the mail.
voidlinux.github.com@pi$ mshow -t /home/duncan/mail/local/cur/1513729805.5186.pi.lan:2, 1: multipart/mixed size=4342 2: text/plain size=100 3: text/plain size=3552 name="0001-The-Advent-of-Void-Day-18-mblaze-fixup.patch"
The third part is the patch file I attached earlier, mshow(1)s
-O flag to extracts a specified part to
stdout by its index or by using a pattern.
I can just pipe the patch directly into
git am to apply the patch and fix conflicts if necessary.
voidlinux.github.com@pi$ mshow -O . 3 | git am Applying: The Advent of Void: Day 18: mblaze fixup
Now that the patch is applied and I flag the mail as
trashed using mflag(1), and update the sequence.
Updating the sequence is necessary because the filename of the mail has changed, I use mseq(1)s
-f flag in this example to just fix missing mails in the current sequence, using mlist(1) again like at the beginning would get the same result.
voidlinux.github.com@pi$ mflag -ST . voidlinux.github.com@pi$ mseq -f | mseq -S
Using mscan(1) once again shows in the second column that the mail is marked as trashed.
voidlinux.github.com@pi$ mscan >x 1 Wed 01:30 email@example.com [PATCH] mblaze advent fixup 1 mails scanned
I hope this post gives a bit more insight on how to work with mblaze(7).