blob: 71bbf662811e34db5a4830c78ac1432e908f2208 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#!/bin/sh
set -eu
readonly Root='https://text.causal.agency'
updated=$(date -u '+%FT%TZ')
cat <<-EOF
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Causal Agency</title>
<author><name>June</name><email>june@causal.agency</email></author>
<link href="${Root}"/>
<link rel="self" href="${Root}/feed.atom"/>
<id>${Root}/</id>
<updated>${updated}</updated>
EOF
encode() {
sed '
s/&/\&/g
s/</\</g
s/"/\"/g
' "$@"
}
set -- *.txt
shift $(( $# - 20 ))
for txt; do
entry="${txt%.txt}.7"
test -f "$entry" || entry="${txt%.txt}.fmt"
date=$(grep '^[.]Dd' "$entry" | cut -c 5-)
title=$(grep -m 1 '^[.]Nm' "$entry" | cut -c 5- | encode)
summary=$(grep '^[.]Nd' "$entry" | cut -c 5- | encode)
published=$(date -ju -f '%B %d, %Y %T' "${date} 00:00:00" '+%FT%TZ')
mtime=$(stat -f '%m' "$entry")
updated=$(date -ju -f '%s' "$mtime" '+%FT%TZ')
cat <<-EOF
<entry>
<title>${title}</title>
<summary>${summary}</summary>
<link href="${Root}/${txt}"/>
<id>${Root}/${txt}</id>
<published>${published}</published>
<updated>${updated}</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
EOF
printf '<pre>'
encode "$txt"
cat <<-EOF
</pre>
</div>
</content>
</entry>
EOF
done
echo '</feed>'
|