summaryrefslogtreecommitdiff
path: root/src/feedentry
diff options
context:
space:
mode:
Diffstat (limited to 'src/feedentry')
-rwxr-xr-xsrc/feedentry53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/feedentry b/src/feedentry
new file mode 100755
index 0000000..6299e6f
--- /dev/null
+++ b/src/feedentry
@@ -0,0 +1,53 @@
+#!/bin/sh
+set -euo pipefail
+
+
+usage() {
+ echo 'Usage: feedentry FILENAME.htmlbody'
+}
+
+FILENAME="${1:-}"
+eval "$(assert-arg -- "$FILENAME" 'FILENAME.htmlbody')"
+. "$(realpath -- "${FILENAME%.*}.conf")"
+
+
+update_xml=
+if [ -n "${updated_at:-}" ]; then
+ update_iso="$(date -ud "$updated_at" -Is)"
+ update_xml=" <updated>
+ $update_iso
+ </updated>"
+fi
+
+cat <<EOF | sed '/^$/d'
+ <entry xml:lang="en">
+ <title type="html">
+ $title_html
+ </title>
+ <link type="text/html" rel="alternative" href="$url_absolute" title="$title_html" />
+ <published>
+ $date_iso
+ </published>
+$update_xml
+ <id>
+ $url_absolute
+ </id>
+ <author>
+ <name>
+ $author
+ </name>
+ <email>
+ $email
+ </email>
+ </author>
+
+ <summary type="html">
+EOF
+
+head -n5 < "$FILENAME" | htmlesc
+printf ' </summary>\n'
+printf ' <content type="html" xml:base="%s">\n' "${url:?}"
+
+htmlesc < "$FILENAME"
+printf ' </content>\n'
+printf ' </entry>\n'