summary refs log tree commit diff
path: root/www/text.causal.agency/feed.sh
blob: fe02862128a5b2affb9217f9cf59532ea58d4e24 (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
#!/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/&/\&amp;/g
		s/</\&lt;/g
		s/"/\&quot;/g
	' "$@"
}

for entry in *.7; do
	txt="${entry%.7}.txt"
	date=$(grep '^[.]Dd' "$entry" | cut -c 5-)
	title=$(grep '^[.]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>'
logheader'>2017-09-27Remove leading blank linesJune McEnroe 2017-09-27Add merge.c to READMEJune McEnroe 2017-09-03Assert client coords are valid after movementJune McEnroe 2017-09-03Relicense AGPLJune McEnroe I know it's already published under a permissive license in what is probably its final form, but I want to license it AGPL anyway on principle following some conversations I had about open source, corporations and copyleft. 2017-09-01Revert "Add client readOnly mode"June McEnroe This reverts commit 34f25ae40a3db9369e9d98b3814f2b93bbc21451. 2017-09-01Remove clientRemove call from clientCastJune McEnroe If an error occurs on a client socket during a broadcast, that client will show up in the kqueue loop with EV_EOF and get removed that way. Tested by sending SIGKILL to a client and watching its cursor disappear. 2017-09-01Add client readOnly modeJune McEnroe 2017-08-31Clean up merge toolJune McEnroe Choose the version with the most recent access if the modify times are the same. 2017-08-31Choose B for tiles with equal modify timesJune McEnroe This way newer access counts and times will be preserved. 2017-08-31Add quick data file merge toolJune McEnroe Hopefully I won't have to use it ever again. 2017-08-30Use only foreground color for selecting spawnJune McEnroe 2017-08-29Add four additional spawnsJune McEnroe 2017-08-28Add respawningJune McEnroe 2017-08-26Move license above includesJune McEnroe Why was it down there? 2017-08-26Snapshot metadataJune McEnroe 2017-08-26Add meta.c to READMEJune McEnroe 2017-08-26Use MakefileJune McEnroe