#!/usr/bin/env bash # variables NEWS=/usr/share/nginx/html/news.json #NEWS=./news.json update=$(date -u '+%FT%H:%M:%S%:z') # functions is-it() { name="${1}" [ "${name}" != "null" -a ! -z "${name}" ] } get-it() { value="$(printf "${item}" | jq -r ".${1}")" is-it "${value}" && eval ${1}=\"${value}\" } atom_header() { cat < Tilde Computer Club News http://tilde.club/ tilde.club's News ${update} EOF } atom_footer() { cat < EOF } make_feed() { atom_header jq -c '.[]' "${NEWS}" | while read item; do get-it "date" get-it "title" get-it "heading" get-it "content" get-it "note" get-it "additional_content" # required element_content_text="# ${title}\n" is-it "${heading}" && element_content_text+="## ${heading}\n" element_content_text+="\n${content}" # optional details="$(printf "${item}" | jq -r ".details")" #echo "!!!!!${details}!!!!" if is-it "${details}" then element_content_text+="\n\n## Details:" element_content_text+="\n$(printf "${details}" | jq -r '.[]' | sed 's/^/ \* /g')" fi is-it "${note}" && element_content_text+="\n\n${note}" is-it "${additional_content}" && element_content_text+="\n\n## In addition:\n${additional_content}" element_content_text+="\n" id_title=${title// /_} id_title=${id_title//:/} cat < ${title} ${date}T00:00:00+00:00 tag:tilde.club,${date}:${id_title} $(printf "${element_content_text}" | sed 's/\&/\&/g; s//\>/g; s/\"/\"/g' | sed "s/'/\'/g;") EOF unset date title heading content details note additional_content element_content_text done atom_footer } make_feed # # https://taguri.org/ # tag_uri="tag:${domain},${date}:${uniq_string}"