diff options
Diffstat (limited to 'src/feedentry')
-rwxr-xr-x | src/feedentry | 53 |
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' |