]> Git — Sourcephile - julm/rezine-rfcs.git/blob - scripts/send.sh
scripts: init
[julm/rezine-rfcs.git] / scripts / send.sh
1 #!/usr/bin/env bash
2 # Usage: scripts/send.sh rfcs/p1
3 # SPDX-FileCopyrightText: 2024 Julien Moutinho (adh14) <julm+rezine@autogeree.net>
4 # SPDX-License-Identifier: AGPL-3.0-or-later
5 # shellcheck disable=SC2046
6 # shellcheck disable=SC2086
7 # shellcheck disable=SC2317
8 set -eux
9 . "${0%/*}"/lib.sh
10 rfcDir=$1; shift
11 test $# -le 0 || declare "$@"
12
13 exitTrap () {
14 rm -f "$coverLetter"
15 rm -fr "$patchesDir"
16 }
17 trap exitTrap EXIT
18 coverLetter=$(mktemp)
19 patchesDir=$(mktemp -d)
20 mimepart_mixed=$(uuidgen)
21 mimepart_alternative=$(uuidgen)
22 mimepart_related=$(uuidgen)
23
24 rfcDirMetadata
25 rfcRevision
26 rfcTag
27 #rfcPDF -o "$rfcDir/${rfcRepo}-${rfcTag}".pdf
28
29 { # coverLetter
30
31 rfcPlain \
32 $(rfcMetadata) \
33 --template "${0%/*}"/../styles/rfc.header.mail \
34 -o -
35
36 cat <<EOF
37 Content-Disposition: inline
38 Mime-Version: 1.0
39 Content-Type: multipart/mixed; boundary="--==_mimepart_mixed_$mimepart_mixed"
40 Content-Transfer-Encoding: UTF-8
41 EOF
42
43 cat <<EOF
44
45 ----==_mimepart_mixed_$mimepart_mixed
46 Content-Type: multipart/alternative; boundary="--==_mimepart_alternative_$mimepart_alternative"
47 Content-Transfer-Encoding: UTF-8
48
49 ----==_mimepart_alternative_$mimepart_alternative
50 Content-Type: text/plain; charset=UTF-8
51 Content-Transfer-Encoding: UTF-8
52
53
54 ::: attention
55 Vous lisez actuellement ce mél dans son format de texte brut,
56 vous _devriez_ le lire dans son format HTML, qui est plus soigné.
57 :::
58
59 EOF
60
61 rfcMarkdown -o -
62 cat <<EOF
63
64 ----==_mimepart_alternative_$mimepart_alternative
65 Content-Type: multipart/related; boundary="--==_mimepart_related_$mimepart_related"
66 Content-Transfer-Encoding: UTF-8
67
68 ----==_mimepart_related_$mimepart_related
69 Content-Type: text/html; charset=UTF-8
70 Content-Transfer-Encoding: UTF-8
71
72 EOF
73 cat "$rfcDir"/index.html
74 cat <<EOF
75 ----==_mimepart_related_$mimepart_related
76
77 ----==_mimepart_alternative_$mimepart_alternative
78
79 EOF
80
81 # FIXME: the PDF rendition is not good
82 #cat <<EOF
83 #----==_mimepart_mixed_$mimepart_mixed
84 #Content-Type: application/pdf; name="RFC$rfcTag.pdf"
85 #Content-Transfer-Encoding: base64
86 #Content-Disposition: attachment; filename*0="RFC$rfcTag."; filename*1=pdf
87 #
88 #EOF
89 #base64 --wrap 76 "$rfcDir/$rfcRepo-$rfcTag".pdf
90
91 cat <<EOF
92
93 ----==_mimepart_mixed_$mimepart_mixed
94 EOF
95
96 } >"$coverLetter"
97
98 git format-patch "$rfcTagAdvocacyOld..$rfcTag^" \
99 --output-directory "$patchesDir" \
100 "$rfcDir"
101
102 git send-email ${git_send_email-} \
103 --to "$(pandoc --to plain --template "$rfcRoot"/styles/metadata.json "$rfcDir"/advocacy.md | jq -r .To | sed -e '/^null$/d')" \
104 --cc "$(pandoc --to plain --template "$rfcRoot"/styles/metadata.json "$rfcDir"/advocacy.md | jq -r .Cc | sed -e '/^null$/d')" \
105 --confirm cc \
106 --8bit-encoding UTF-8 \
107 --cover-letter "$coverLetter" \
108 "$patchesDir"
109
110 cleanTag () { :; }